summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/datenavigatorcontainer.cpp7
-rw-r--r--korganizer/kodaymatrix.cpp2
2 files changed, 4 insertions, 5 deletions
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index 6de7c45..9720146 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -65,323 +65,322 @@ void DateNavigatorContainer::connectNavigatorView( KDateNavigator *v )
65#endif 65#endif
66 connect( v, SIGNAL( weekClicked( const QDate & ) ), 66 connect( v, SIGNAL( weekClicked( const QDate & ) ),
67 SIGNAL( weekClicked( const QDate & ) ) ); 67 SIGNAL( weekClicked( const QDate & ) ) );
68 68
69 connect( v, SIGNAL( goPrevious() ), SIGNAL( goPrevious() ) ); 69 connect( v, SIGNAL( goPrevious() ), SIGNAL( goPrevious() ) );
70 connect( v, SIGNAL( goNext() ), SIGNAL( goNext() ) ); 70 connect( v, SIGNAL( goNext() ), SIGNAL( goNext() ) );
71 71
72 connect( v, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); 72 connect( v, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) );
73 connect( v, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); 73 connect( v, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) );
74 connect( v, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); 74 connect( v, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) );
75 connect( v, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); 75 connect( v, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) );
76 76
77 connect( v, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) ); 77 connect( v, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) );
78} 78}
79 79
80void DateNavigatorContainer::slotMonthSelected( int month ) 80void DateNavigatorContainer::slotMonthSelected( int month )
81{ 81{
82 //qDebug("slotMonthSelected %d ", month); 82 //qDebug("slotMonthSelected %d ", month);
83 QDate baseDate = mNavigatorView->baseDate(); 83 QDate baseDate = mNavigatorView->baseDate();
84 if ( baseDate.month() == month ) 84 if ( baseDate.month() == month )
85 return; 85 return;
86 //qDebug("month %d %d ",baseDate.month(),month); 86 //qDebug("month %d %d ",baseDate.month(),month);
87 QDate date = QDate ( baseDate.year(), baseDate.month() , 15 ); 87 QDate date = QDate ( baseDate.year(), baseDate.month() , 15 );
88 date = date.addDays( -(baseDate.month()-month ) *30 ); 88 date = date.addDays( -(baseDate.month()-month ) *30 );
89 QDate newBase = QDate ( date.year(), date.month() , baseDate.day() ); 89 QDate newBase = QDate ( date.year(), date.month() , baseDate.day() );
90 90
91#if 0 91#if 0
92 mFirstSelectedDate = dateList.first() ; 92 mFirstSelectedDate = dateList.first() ;
93 mSelectedDateCount = dateList.count() ; 93 mSelectedDateCount = dateList.count() ;
94 94
95 KDateNavigator *view = mExtraViews.at( 0 ); 95 KDateNavigator *view = mExtraViews.at( 0 );
96 QDate date = view->baseDate(); 96 QDate date = view->baseDate();
97 97
98 QDate curEnd = date.addDays( (mLastDisplayedDN)*30 +7); 98 QDate curEnd = date.addDays( (mLastDisplayedDN)*30 +7);
99 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() ); 99 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() );
100 if ( lDate < curEnd && date.addDays( -30 ) < fDate) { 100 if ( lDate < curEnd && date.addDays( -30 ) < fDate) {
101 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate ); 101 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate );
102 mNavigatorView->dayMatrix()->repaint( false ); 102 mNavigatorView->dayMatrix()->repaint( false );
103 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 103 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
104 KDateNavigator *n = mExtraViews.at( i ); 104 KDateNavigator *n = mExtraViews.at( i );
105 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) { 105 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) {
106 n->dayMatrix()->repaint( false ); 106 n->dayMatrix()->repaint( false );
107 } 107 }
108 } 108 }
109 return; 109 return;
110 } 110 }
111#endif 111#endif
112 //qDebug("NEW BASE %s", newBase.toString().latin1()); 112 //qDebug("NEW BASE %s", newBase.toString().latin1());
113 mNavigatorView->setBaseDate( newBase ); 113 mNavigatorView->setBaseDate( newBase );
114 QDate last = lastAvailableDate(); 114 QDate last = lastAvailableDate();
115 QDate first = firstAvailableDate(); 115 QDate first = firstAvailableDate();
116 116
117 QDate selFirst = mFirstSelectedDate; 117 QDate selFirst = mFirstSelectedDate;
118 QDate selLast = selFirst.addDays( mSelectedDateCount-1 ); 118 QDate selLast = selFirst.addDays( mSelectedDateCount-1 );
119 if ( selFirst >= first && selLast <= last ) { 119 if ( selFirst >= first && selLast <= last ) {
120 setBaseDates(); 120 setBaseDates();
121 updateDayMatrixDates(); 121 updateDayMatrixDates();
122 } 122 }
123 else { 123 else {
124 setBaseDates(); 124 setBaseDates();
125 updateDayMatrixDates(); 125 updateDayMatrixDates();
126 emit monthSelected( month ); 126 emit monthSelected( month );
127 } 127 }
128} 128}
129void DateNavigatorContainer::setCalendar( Calendar *cal ) 129void DateNavigatorContainer::setCalendar( Calendar *cal )
130{ 130{
131 mCalendar = cal; 131 mCalendar = cal;
132 mNavigatorView->setCalendar( cal ); 132 mNavigatorView->setCalendar( cal );
133 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 133 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
134 KDateNavigator *n = mExtraViews.at( i ); 134 KDateNavigator *n = mExtraViews.at( i );
135 n->setCalendar( cal ); 135 n->setCalendar( cal );
136 } 136 }
137} 137}
138void DateNavigatorContainer::updateDayMatrixDates() 138void DateNavigatorContainer::updateDayMatrixDates()
139{ 139{
140 140
141 QDate fDate = mFirstSelectedDate; 141 QDate fDate = mFirstSelectedDate;
142 QDate lDate = fDate.addDays( mSelectedDateCount - 1 ); 142 QDate lDate = fDate.addDays( mSelectedDateCount - 1 );
143 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate ); 143 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate );
144 mNavigatorView->dayMatrix()->repaint( false ); 144 mNavigatorView->dayMatrix()->repaint( false );
145 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 145 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
146 KDateNavigator *n = mExtraViews.at( i ); 146 KDateNavigator *n = mExtraViews.at( i );
147 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) { 147 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) {
148 n->dayMatrix()->repaint( false ); 148 n->dayMatrix()->repaint( false );
149 } 149 }
150 } 150 }
151} 151}
152 152
153void DateNavigatorContainer::updateDayMatrix() 153void DateNavigatorContainer::updateDayMatrix()
154{ 154{
155 mNavigatorView->updateDayMatrix(); 155 mNavigatorView->updateDayMatrix();
156 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 156 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
157 KDateNavigator *n = mExtraViews.at( i ); 157 KDateNavigator *n = mExtraViews.at( i );
158 n->updateDayMatrix(); 158 n->updateDayMatrix();
159 } 159 }
160} 160}
161 161
162void DateNavigatorContainer::updateToday() 162void DateNavigatorContainer::updateToday()
163{ 163{
164 qDebug("DateNavigatorContainer::updateToday() NOT IMPL "); 164 qDebug("DateNavigatorContainer::updateToday() NOT IMPL ");
165#if 0 165#if 0
166 mNavigatorView->updateToday(); 166 mNavigatorView->updateToday();
167 KDateNavigator *n; 167 KDateNavigator *n;
168 for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { 168 for( n = mExtraViews.first(); n; n = mExtraViews.next() ) {
169 n->updateToday(); 169 n->updateToday();
170 } 170 }
171#endif 171#endif
172} 172}
173 173
174void DateNavigatorContainer::updateView() 174void DateNavigatorContainer::updateView()
175{ 175{
176 mNavigatorView->updateView(); 176 mNavigatorView->updateView();
177 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 177 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
178 KDateNavigator *n = mExtraViews.at( i ); 178 KDateNavigator *n = mExtraViews.at( i );
179 n->updateView(); 179 n->updateView();
180 } 180 }
181} 181}
182 182
183void DateNavigatorContainer::updateConfig() 183void DateNavigatorContainer::updateConfig()
184{ 184{
185 mNavigatorView->updateConfig(); 185 mNavigatorView->updateConfig();
186 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 186 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
187 KDateNavigator *n = mExtraViews.at( i ); 187 KDateNavigator *n = mExtraViews.at( i );
188 n->updateConfig(); 188 n->updateConfig();
189 } 189 }
190} 190}
191QDate DateNavigatorContainer::lastAvailableDate() const 191QDate DateNavigatorContainer::lastAvailableDate() const
192{ 192{
193 QDate date = mNavigatorView->baseDate(); 193 QDate date = mNavigatorView->baseDate();
194 QDate last = QDate ( date.year(), date.month(), date.daysInMonth() ); 194 QDate last = QDate ( date.year(), date.month(), date.daysInMonth() );
195 int iii = mLastDisplayedDN; 195 int iii = mLastDisplayedDN;
196 if ( mLastDisplayedDN ) 196 if ( mLastDisplayedDN )
197 last = last.addDays( 1); 197 last = last.addDays( 1);
198 while ( iii ) { 198 while ( iii ) {
199 last = last.addDays( last.daysInMonth ()); 199 last = last.addDays( last.daysInMonth ());
200 //qDebug("DATE %s ", last.toString().latin1() ); 200 //qDebug("DATE %s ", last.toString().latin1() );
201 --iii; 201 --iii;
202 } 202 }
203 if ( mLastDisplayedDN ) 203 if ( mLastDisplayedDN )
204 last = last.addDays( -1); 204 last = last.addDays( -1);
205 return last; 205 return last;
206} 206}
207QDate DateNavigatorContainer::firstAvailableDate() const 207QDate DateNavigatorContainer::firstAvailableDate() const
208{ 208{
209 return QDate ( mNavigatorView->baseDate().year(), mNavigatorView->baseDate().month(), 1 ); 209 return QDate ( mNavigatorView->baseDate().year(), mNavigatorView->baseDate().month(), 1 );
210} 210}
211void DateNavigatorContainer::selectDates( const DateList &dateList ) 211void DateNavigatorContainer::selectDates( const DateList &dateList )
212{ 212{
213 mFirstSelectedDate = dateList.first() ; 213 mFirstSelectedDate = dateList.first() ;
214 mSelectedDateCount = dateList.count() ; 214 mSelectedDateCount = dateList.count() ;
215 if ( !mLastDisplayedDN ) { 215 if ( !mLastDisplayedDN ) {
216 mNavigatorView->selectDates( dateList ); 216 mNavigatorView->selectDates( dateList );
217 return; 217 return;
218 } 218 }
219 QDate fDate = dateList.first(); 219 QDate fDate = dateList.first();
220 QDate lDate = dateList.last(); 220 QDate lDate = dateList.last();
221 if ( mLastDisplayedDN <= 2 ) { 221 if ( mLastDisplayedDN <= 2 ) {
222 mNavigatorView->selectDates( dateList ); 222 mNavigatorView->selectDates( dateList );
223 KDateNavigator *view = mExtraViews.at( 0 ); 223 KDateNavigator *view = mExtraViews.at( 0 );
224 QDate bDate = fDate.addDays( fDate.daysInMonth () - fDate.day() +1 ); 224 QDate bDate = fDate.addDays( fDate.daysInMonth () - fDate.day() +1 );
225 view->setBaseDate( bDate, false ); 225 view->setBaseDate( bDate, false );
226 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate); 226 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate);
227 if ( mLastDisplayedDN == 2 ) { 227 if ( mLastDisplayedDN == 2 ) {
228 view = mExtraViews.at( 1 ); 228 view = mExtraViews.at( 1 );
229 bDate = bDate.addDays( bDate.daysInMonth () - bDate.day() +1 ); 229 bDate = bDate.addDays( bDate.daysInMonth () - bDate.day() +1 );
230 view->setBaseDate( bDate, false ); 230 view->setBaseDate( bDate, false );
231 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate); 231 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate);
232 } 232 }
233 return; 233 return;
234 } 234 }
235 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() ); 235 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() );
236 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() ); 236 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() );
237 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) { 237 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) {
238 updateDayMatrixDates(); 238 updateDayMatrixDates();
239 return; 239 return;
240 } 240 }
241 mNavigatorView->selectDates( dateList ); 241 mNavigatorView->selectDates( dateList );
242 setBaseDates(); 242 setBaseDates();
243 if ( mLastDisplayedDN ) { 243 if ( mLastDisplayedDN ) {
244 KDateNavigator *view = mExtraViews.at( 0 ); 244 KDateNavigator *view = mExtraViews.at( 0 );
245 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 245 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
246 view->dayMatrix()->repaint( false ); 246 view->dayMatrix()->repaint( false );
247 if ( mLastDisplayedDN > 1 ) { 247 if ( mLastDisplayedDN > 1 ) {
248 KDateNavigator *view = mExtraViews.at( 1 ); 248 KDateNavigator *view = mExtraViews.at( 1 );
249 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 249 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
250 view->dayMatrix()->repaint( false ); 250 view->dayMatrix()->repaint( false );
251 } 251 }
252 } 252 }
253} 253}
254 254
255void DateNavigatorContainer::setBaseDates() 255void DateNavigatorContainer::setBaseDates()
256{ 256{
257 QDate baseDate = mNavigatorView->baseDate(); 257 QDate baseDate = mNavigatorView->baseDate();
258 bool doRepaint = true; 258 bool doRepaint = true;
259 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 259 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
260 KDateNavigator *n = mExtraViews.at( i ); 260 KDateNavigator *n = mExtraViews.at( i );
261 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 ); 261 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 );
262 n->setBaseDate( baseDate, doRepaint ); 262 n->setBaseDate( baseDate, doRepaint );
263 } 263 }
264} 264}
265 265
266void DateNavigatorContainer::resizeEvent( QResizeEvent * e ) 266void DateNavigatorContainer::resizeEvent( QResizeEvent * e )
267{ 267{
268#if 0 268#if 0
269 kdDebug(5850) << "DateNavigatorContainer::resizeEvent()" << endl; 269 kdDebug(5850) << "DateNavigatorContainer::resizeEvent()" << endl;
270 kdDebug(5850) << " CURRENT SIZE: " << size() << endl; 270 kdDebug(5850) << " CURRENT SIZE: " << size() << endl;
271 kdDebug(5850) << " MINIMUM SIZEHINT: " << minimumSizeHint() << endl; 271 kdDebug(5850) << " MINIMUM SIZEHINT: " << minimumSizeHint() << endl;
272 kdDebug(5850) << " SIZEHINT: " << sizeHint() << endl; 272 kdDebug(5850) << " SIZEHINT: " << sizeHint() << endl;
273 kdDebug(5850) << " MINIMUM SIZE: " << minimumSize() << endl; 273 kdDebug(5850) << " MINIMUM SIZE: " << minimumSize() << endl;
274#endif 274#endif
275 //QSize minSize = mNavigatorView->sizeHintTwoButtons(); 275 //QSize minSize = mNavigatorView->sizeHintTwoButtons();
276 QSize minSize = mNavigatorView->yourSizeHint(); 276 QSize minSize = mNavigatorView->yourSizeHint();
277 277
278// kdDebug(5850) << " NAVIGATORVIEW minimumSizeHint: " << minSize << endl; 278// kdDebug(5850) << " NAVIGATORVIEW minimumSizeHint: " << minSize << endl;
279 279
280 int verticalCount = size().height() / minSize.height(); 280 int verticalCount = size().height() / minSize.height();
281 int horizontalCount = size().width() / minSize.width(); 281 int horizontalCount = size().width() / minSize.width();
282 //qDebug(" wattdatt %d new %d %d ", size().width() ,e->size().width() , minSize.width() ); 282 //qDebug(" wattdatt %d new %d %d ", size().width() ,e->size().width() , minSize.width() );
283 //qDebug("COUNT %d %d %d %d ", verticalCount, horizontalCount , mVerticalCount, mHorizontalCount ); 283 //qDebug("COUNT %d %d %d %d ", verticalCount, horizontalCount , mVerticalCount, mHorizontalCount );
284 bool fontchange = false; 284 bool fontchange = false;
285 if ( horizontalCount == 1) 285 if ( horizontalCount == 1)
286 horizontalCount = size().width() / mNavigatorView->yourFullSizeHint().width(); 286 horizontalCount = size().width() / mNavigatorView->yourFullSizeHint().width();
287 QFont fo; 287 QFont fo;
288 if ( horizontalCount != mHorizontalCount || 288 if ( horizontalCount != mHorizontalCount ||
289 verticalCount != mVerticalCount ) { 289 verticalCount != mVerticalCount ) {
290 uint count = horizontalCount * verticalCount; 290 uint count = horizontalCount * verticalCount;
291 if ( count == 0 ) { 291 if ( count == 0 ) {
292 bool ok; 292 bool ok;
293 fo = mNavigatorView->yourFontHint( size() , &ok ); 293 fo = mNavigatorView->yourFontHint( size() , &ok );
294 //mNavigatorView->resize( size() ); 294 //mNavigatorView->resize( size() );
295 //if ( ! ok ) 295 //if ( ! ok )
296 // return; 296 // return;
297 int butt = 2; 297 int butt = 2;
298 horizontalCount = size().width() / mNavigatorView->sizeHintTwoButtons( ).width(); 298 horizontalCount = size().width() / mNavigatorView->sizeHintTwoButtons( ).width();
299 if ( horizontalCount <= 1 ) 299 if ( horizontalCount <= 1 )
300 minSize = mNavigatorView->sizeHintTwoButtons( 4 ); 300 minSize = mNavigatorView->sizeHintTwoButtons( 4 );
301 else 301 else
302 minSize = mNavigatorView->sizeHintTwoButtons(); 302 minSize = mNavigatorView->sizeHintTwoButtons();
303 verticalCount = size().height() / minSize.height(); 303 verticalCount = size().height() / minSize.height();
304 horizontalCount = size().width() / minSize.width(); 304 horizontalCount = size().width() / minSize.width();
305 if ( horizontalCount == 0 ) 305 if ( horizontalCount == 0 )
306 horizontalCount = 1; 306 horizontalCount = 1;
307 if ( verticalCount == 0 ) 307 if ( verticalCount == 0 )
308 verticalCount = 1; 308 verticalCount = 1;
309 fontchange = true; 309 fontchange = true;
310 count = horizontalCount * verticalCount; 310 count = horizontalCount * verticalCount;
311 } else { 311 } else {
312 if ( mNavigatorView->fontChanged() ) { 312 if ( mNavigatorView->fontChanged() ) {
313 fontchange = true; 313 fontchange = true;
314 fo = KOPrefs::instance()->mDateNavigatorFont; 314 fo = KOPrefs::instance()->mDateNavigatorFont;
315 mNavigatorView->changeFont( fo ); 315 mNavigatorView->changeFont( fo );
316 mNavigatorView->unsetFontChanged(); 316 mNavigatorView->unsetFontChanged();
317 } 317 }
318 } 318 }
319 319
320 mLastDisplayedDN = horizontalCount*verticalCount-1; 320 mLastDisplayedDN = horizontalCount*verticalCount-1;
321 bool setBaseD = false;
322 while ( count > ( mExtraViews.count() + 1 ) ) { 321 while ( count > ( mExtraViews.count() + 1 ) ) {
323 KDateNavigator *n = new KDateNavigator( this ); 322 KDateNavigator *n = new KDateNavigator( this );
324 n->setMonthSignalOffset ( mExtraViews.count()+1 ); 323 n->setMonthSignalOffset ( mExtraViews.count()+1 );
325 mExtraViews.append( n ); 324 mExtraViews.append( n );
326 n->setCalendar( mCalendar ); 325 n->setCalendar( mCalendar );
327 setBaseD = true;
328 connectNavigatorView( n ); 326 connectNavigatorView( n );
329 n->show(); 327 n->show();
330 } 328 }
331 int iii = 0; 329 int iii = 0;
332 while ( iii < ( mExtraViews.count() ) ) { 330 while ( iii < ( mExtraViews.count() ) ) {
333 if ( iii < count-1 ) 331 if ( iii < count-1 )
334 mExtraViews.at( iii )->show(); 332 mExtraViews.at( iii )->show();
335 else 333 else
336 mExtraViews.at( iii )->hide(); 334 mExtraViews.at( iii )->hide();
337 ++iii; 335 ++iii;
338 } 336 }
339 if ( setBaseD ) 337
340 setBaseDates(); 338 setBaseDates();
341 if ( fontchange ) { 339 if ( fontchange ) {
342 //mNavigatorView->changeFont( fo ); 340 //mNavigatorView->changeFont( fo );
343 uint i; 341 uint i;
344 for( i = 0; i < mExtraViews.count(); ++i ) { 342 for( i = 0; i < mExtraViews.count(); ++i ) {
345 KDateNavigator *view = mExtraViews.at( i ); 343 KDateNavigator *view = mExtraViews.at( i );
346 view->changeFont( fo ); 344 view->changeFont( fo );
347 } 345 }
348 } 346 }
349 mHorizontalCount = horizontalCount; 347 mHorizontalCount = horizontalCount;
350 mVerticalCount = verticalCount; 348 mVerticalCount = verticalCount;
351 349
352 } 350 }
353 //qDebug("COUNT %d ", mExtraViews.count()); 351 //qDebug("COUNT %d ", mExtraViews.count());
354 int height = size().height() / verticalCount; 352 int height = size().height() / verticalCount;
355 int width = size().width() / horizontalCount; 353 int width = size().width() / horizontalCount;
356 354
357 NavigatorBar *bar = mNavigatorView->navigatorBar(); 355 NavigatorBar *bar = mNavigatorView->navigatorBar();
358 if ( horizontalCount > 1 ) bar->showButtons( true, false ); 356 if ( horizontalCount > 1 ) bar->showButtons( true, false );
359 else bar->showButtons( true, true ); 357 else bar->showButtons( true, true );
360 358
361 mNavigatorView->setGeometry(0, 359 mNavigatorView->setGeometry(0,
362 0, width, height ); 360 0, width, height );
363 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 361 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
364 int x = ( i + 1 ) % horizontalCount; 362 int x = ( i + 1 ) % horizontalCount;
365 int y = ( i + 1 ) / horizontalCount; 363 int y = ( i + 1 ) / horizontalCount;
366 364
367 KDateNavigator *view = mExtraViews.at( i ); 365 KDateNavigator *view = mExtraViews.at( i );
368 bar = view->navigatorBar(); 366 bar = view->navigatorBar();
369 if ( y > 0 ) bar->showButtons( false, false ); 367 if ( y > 0 ) bar->showButtons( false, false );
370 else { 368 else {
371 if ( x + 1 == horizontalCount ) bar->showButtons( false, true ); 369 if ( x + 1 == horizontalCount ) bar->showButtons( false, true );
372 else bar->showButtons( false, false ); 370 else bar->showButtons( false, false );
373 } 371 }
374 view->setGeometry( x * width, 372 view->setGeometry( x * width,
375 y * height, width, height ); 373 y * height, width, height );
376 } 374 }
375 //updateDayMatrixDates();
377} 376}
378 377
379QSize DateNavigatorContainer::minimumSizeHint() const 378QSize DateNavigatorContainer::minimumSizeHint() const
380{ 379{
381 return mNavigatorView->minimumSizeHint(); 380 return mNavigatorView->minimumSizeHint();
382} 381}
383 382
384QSize DateNavigatorContainer::sizeHint() const 383QSize DateNavigatorContainer::sizeHint() const
385{ 384{
386 return mNavigatorView->yourSizeHint(); 385 return mNavigatorView->yourSizeHint();
387} 386}
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 3ee1fa7..366e8b8 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -1,362 +1,362 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 Parts of the source code have been copied from kdpdatebutton.cpp 4 Parts of the source code have been copied from kdpdatebutton.cpp
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source ode for Qt in the source distribution. 22 without including the source ode for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qevent.h> 25#include <qevent.h>
26#include <qpainter.h> 26#include <qpainter.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qwhatsthis.h> 29#include <qwhatsthis.h>
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#include <libkcal/vcaldrag.h> 35#include <libkcal/vcaldrag.h>
36#include <libkcal/icaldrag.h> 36#include <libkcal/icaldrag.h>
37#include <libkcal/dndfactory.h> 37#include <libkcal/dndfactory.h>
38#include <libkcal/calendarresources.h> 38#include <libkcal/calendarresources.h>
39#include <libkcal/resourcecalendar.h> 39#include <libkcal/resourcecalendar.h>
40#include <kresources/resourceselectdialog.h> 40#include <kresources/resourceselectdialog.h>
41 41
42#include <kcalendarsystem.h> 42#include <kcalendarsystem.h>
43 43
44#ifndef KORG_NOPLUGINS 44#ifndef KORG_NOPLUGINS
45#include "kocore.h" 45#include "kocore.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#include "koglobals.h" 48#include "koglobals.h"
49 49
50#include "kodaymatrix.h" 50#include "kodaymatrix.h"
51 51
52// ============================================================================ 52// ============================================================================
53// D Y N A M I C T I P 53// D Y N A M I C T I P
54// ============================================================================ 54// ============================================================================
55 55
56DynamicTip::DynamicTip( QWidget * parent ) 56DynamicTip::DynamicTip( QWidget * parent )
57 : QToolTip( parent ) 57 : QToolTip( parent )
58{ 58{
59 matrix = (KODayMatrix*)parent; 59 matrix = (KODayMatrix*)parent;
60} 60}
61 61
62class KODaymatrixWhatsThis :public QWhatsThis 62class KODaymatrixWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;}; 65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;};
66 ~KODaymatrixWhatsThis() { ; }; 66 ~KODaymatrixWhatsThis() { ; };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p ) 69 virtual QString text( const QPoint& p )
70 { 70 {
71 return _view->getWhatsThisText( p ) ; 71 return _view->getWhatsThisText( p ) ;
72 } 72 }
73private: 73private:
74 KODayMatrix * _view; 74 KODayMatrix * _view;
75}; 75};
76 76
77void DynamicTip::maybeTip( const QPoint &pos ) 77void DynamicTip::maybeTip( const QPoint &pos )
78{ 78{
79 //calculate which cell of the matrix the mouse is in 79 //calculate which cell of the matrix the mouse is in
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108#if 0
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : 109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name) 110 QFrame(parent, name)
111#endif 111#endif
112{ 112{
113 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 113 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
114 mPendingUpdateBeforeRepaint = false; 114 mPendingUpdateBeforeRepaint = false;
115 mouseDown = false; 115 mouseDown = false;
116 // initialize dynamic arrays 116 // initialize dynamic arrays
117 bDays.resize ( NUMDAYS ); 117 bDays.resize ( NUMDAYS );
118 days = new QDate[NUMDAYS]; 118 days = new QDate[NUMDAYS];
119 daylbls = new QString[NUMDAYS]; 119 daylbls = new QString[NUMDAYS];
120 events = new int[NUMDAYS]; 120 events = new int[NUMDAYS];
121 mToolTip = new DynamicTip(this); 121 mToolTip = new DynamicTip(this);
122 122
123 // set default values used for drawing the matrix 123 // set default values used for drawing the matrix
124 mDefaultBackColor = palette().active().base(); 124 mDefaultBackColor = palette().active().base();
125 mDefaultTextColor = palette().active().foreground(); 125 mDefaultTextColor = palette().active().foreground();
126 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 126 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
127 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 127 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
128 mSelectedDaysColor = QColor("white"); 128 mSelectedDaysColor = QColor("white");
129 mTodayMarginWidth = 2; 129 mTodayMarginWidth = 2;
130 mSelEnd = mSelStart = NOSELECTION; 130 mSelEnd = mSelStart = NOSELECTION;
131 131
132 setAcceptDrops(true); 132 setAcceptDrops(true);
133 //setFont( QFont("Arial", 10) ); 133 //setFont( QFont("Arial", 10) );
134 134
135 mUpdateTimer = new QTimer( this ); 135 mUpdateTimer = new QTimer( this );
136 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 136 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
137 mRepaintTimer = new QTimer( this ); 137 mRepaintTimer = new QTimer( this );
138 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 138 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
139 mDayChanged = false; 139 mDayChanged = false;
140 updateView(); 140 updateView();
141} 141}
142QString KODayMatrix::getWhatsThisText( QPoint p ) 142QString KODayMatrix::getWhatsThisText( QPoint p )
143{ 143{
144 144
145 int tmp = getDayIndexFrom(p.x(), p.y()); 145 int tmp = getDayIndexFrom(p.x(), p.y());
146 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 146 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
147 return QString(); 147 return QString();
148 QDate mDate = days[tmp]; 148 QDate mDate = days[tmp];
149 QPtrList<Event> eventlist = mCalendar->events(mDate); 149 QPtrList<Event> eventlist = mCalendar->events(mDate);
150 Event *event; 150 Event *event;
151 QStringList mToolTip; 151 QStringList mToolTip;
152 for(event=eventlist.first();event != 0;event=eventlist.next()) { 152 for(event=eventlist.first();event != 0;event=eventlist.next()) {
153 QString mToolTipText; 153 QString mToolTipText;
154 QString text; 154 QString text;
155 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 155 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
156 if (event->isMultiDay()) { 156 if (event->isMultiDay()) {
157 QString prefix = "<->";multiday = 2; 157 QString prefix = "<->";multiday = 2;
158 QString time; 158 QString time;
159 if ( event->doesRecur() ) { 159 if ( event->doesRecur() ) {
160 if ( event->recursOn( mDate) ) { 160 if ( event->recursOn( mDate) ) {
161 prefix ="->" ;multiday = 1; 161 prefix ="->" ;multiday = 1;
162 } 162 }
163 else { 163 else {
164 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 164 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
165 if ( event->recursOn( mDate.addDays( -days)) ) { 165 if ( event->recursOn( mDate.addDays( -days)) ) {
166 prefix ="<-" ;multiday = 3; 166 prefix ="<-" ;multiday = 3;
167 } 167 }
168 } 168 }
169 } else { 169 } else {
170 if (mDate == event->dtStart().date()) { 170 if (mDate == event->dtStart().date()) {
171 prefix ="->" ;multiday = 1; 171 prefix ="->" ;multiday = 1;
172 } else if (mDate == event->dtEnd().date()) { 172 } else if (mDate == event->dtEnd().date()) {
173 prefix ="<-" ;multiday = 3; 173 prefix ="<-" ;multiday = 3;
174 } 174 }
175 } 175 }
176 if ( !event->doesFloat() ) { 176 if ( !event->doesFloat() ) {
177 if ( mDate == event->dtStart().date () ) 177 if ( mDate == event->dtStart().date () )
178 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 178 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
179 else if ( mDate == event->dtEnd().date () ) 179 else if ( mDate == event->dtEnd().date () )
180 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 180 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
181 181
182 } 182 }
183 text = time + event->summary(); 183 text = time + event->summary();
184 mToolTipText += prefix + text; 184 mToolTipText += prefix + text;
185 } else { 185 } else {
186 if (event->doesFloat()) { 186 if (event->doesFloat()) {
187 text = event->summary(); 187 text = event->summary();
188 mToolTipText += text; 188 mToolTipText += text;
189 } 189 }
190 else { 190 else {
191 text = KGlobal::locale()->formatTime(event->dtStart().time()); 191 text = KGlobal::locale()->formatTime(event->dtStart().time());
192 text += " " + event->summary(); 192 text += " " + event->summary();
193 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 193 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
194 } 194 }
195 } 195 }
196 if ( !event->location().isEmpty() ) 196 if ( !event->location().isEmpty() )
197 mToolTipText += " (" + event->location() + ")"; 197 mToolTipText += " (" + event->location() + ")";
198#if QT_VERSION >= 0x030000 198#if QT_VERSION >= 0x030000
199 mToolTipText.replace( '<' , "&lt;" ); 199 mToolTipText.replace( '<' , "&lt;" );
200 mToolTipText.replace( '>' , "&gt;" ); 200 mToolTipText.replace( '>' , "&gt;" );
201#else 201#else
202 if ( mToolTipText.find ('<') >= 0 ) { 202 if ( mToolTipText.find ('<') >= 0 ) {
203 mToolTipText.replace( QRegExp("<") , "&lt;" ); 203 mToolTipText.replace( QRegExp("<") , "&lt;" );
204 } 204 }
205 if ( mToolTipText.find ('>') >= 0 ) { 205 if ( mToolTipText.find ('>') >= 0 ) {
206 mToolTipText.replace( QRegExp(">") , "&gt;" ); 206 mToolTipText.replace( QRegExp(">") , "&gt;" );
207 } 207 }
208#endif 208#endif
209 //qDebug("TTT: %s ", mToolTipText.latin1()); 209 //qDebug("TTT: %s ", mToolTipText.latin1());
210 mToolTip.append( mToolTipText ); 210 mToolTip.append( mToolTipText );
211 } 211 }
212 mToolTip.sort(); 212 mToolTip.sort();
213 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 213 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
214} 214}
215void KODayMatrix::setCalendar( Calendar *cal ) 215void KODayMatrix::setCalendar( Calendar *cal )
216{ 216{
217 mCalendar = cal; 217 mCalendar = cal;
218 218
219 setAcceptDrops( mCalendar ); 219 setAcceptDrops( mCalendar );
220 220
221 updateEvents(); 221 updateEvents();
222} 222}
223 223
224QColor KODayMatrix::getShadedColor(QColor color) 224QColor KODayMatrix::getShadedColor(QColor color)
225{ 225{
226 QColor shaded; 226 QColor shaded;
227 int h=0; 227 int h=0;
228 int s=0; 228 int s=0;
229 int v=0; 229 int v=0;
230 color.hsv(&h,&s,&v); 230 color.hsv(&h,&s,&v);
231 s = s/4; 231 s = s/4;
232 v = 192+v/4; 232 v = 192+v/4;
233 shaded.setHsv(h,s,v); 233 shaded.setHsv(h,s,v);
234 234
235 return shaded; 235 return shaded;
236} 236}
237 237
238KODayMatrix::~KODayMatrix() 238KODayMatrix::~KODayMatrix()
239{ 239{
240 // delete mKODaymatrixWhatsThis; 240 // delete mKODaymatrixWhatsThis;
241 delete [] days; 241 delete [] days;
242 delete [] daylbls; 242 delete [] daylbls;
243 delete [] events; 243 delete [] events;
244 delete mToolTip; 244 delete mToolTip;
245} 245}
246 246
247/* 247/*
248void KODayMatrix::setStartDate(QDate start) 248void KODayMatrix::setStartDate(QDate start)
249{ 249{
250 updateView(start); 250 updateView(start);
251} 251}
252*/ 252*/
253 253
254void KODayMatrix::addSelectedDaysTo(DateList& selDays) 254void KODayMatrix::addSelectedDaysTo(DateList& selDays)
255{ 255{
256 256
257 if (mSelStart == NOSELECTION) { 257 if (mSelStart == NOSELECTION) {
258 return; 258 return;
259 } 259 }
260 260
261 //cope with selection being out of matrix limits at top (< 0) 261 //cope with selection being out of matrix limits at top (< 0)
262 int i0 = mSelStart; 262 int i0 = mSelStart;
263 if (i0 < 0) { 263 if (i0 < 0) {
264 for (int i = i0; i < 0; i++) { 264 for (int i = i0; i < 0; i++) {
265 selDays.append(days[0].addDays(i)); 265 selDays.append(days[0].addDays(i));
266 } 266 }
267 i0 = 0; 267 i0 = 0;
268 } 268 }
269 269
270 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 270 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
271 if (mSelEnd > NUMDAYS-1) { 271 if (mSelEnd > NUMDAYS-1) {
272 for (int i = i0; i <= NUMDAYS-1; i++) { 272 for (int i = i0; i <= NUMDAYS-1; i++) {
273 selDays.append(days[i]); 273 selDays.append(days[i]);
274 } 274 }
275 for (int i = NUMDAYS; i < mSelEnd; i++) { 275 for (int i = NUMDAYS; i < mSelEnd; i++) {
276 selDays.append(days[0].addDays(i)); 276 selDays.append(days[0].addDays(i));
277 } 277 }
278 278
279 // apply normal routine to selection being entirely within matrix limits 279 // apply normal routine to selection being entirely within matrix limits
280 } else { 280 } else {
281 for (int i = i0; i <= mSelEnd; i++) { 281 for (int i = i0; i <= mSelEnd; i++) {
282 selDays.append(days[i]); 282 selDays.append(days[i]);
283 } 283 }
284 } 284 }
285} 285}
286 286
287bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 287bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
288{ 288{
289 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 289 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
290 mSelStart = startdate.daysTo(start); 290 mSelStart = startdate.daysTo(start);
291 if ( mSelStart < 0 ) 291 if ( mSelStart < 0 )
292 mSelStart = 0; 292 mSelStart = 0;
293 mSelEnd = startdate.daysTo(end); 293 mSelEnd = startdate.daysTo(end);
294 if ( mSelEnd > NUMDAYS-1 ) 294 if ( mSelEnd > NUMDAYS-1 )
295 mSelEnd = NUMDAYS-1; 295 mSelEnd = NUMDAYS-1;
296 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 296 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
297 clearSelection(); 297 clearSelection();
298 if ( noSel ) 298 if ( noSel )
299 return false; 299 return false;
300 } 300 }
301 301
302 return true; 302 return true;
303} 303}
304void KODayMatrix::clearSelection() 304void KODayMatrix::clearSelection()
305{ 305{
306 mSelEnd = mSelStart = NOSELECTION; 306 mSelEnd = mSelStart = NOSELECTION;
307} 307}
308 308
309 309
310void KODayMatrix::recalculateToday() 310void KODayMatrix::recalculateToday()
311{ 311{
312 today = -1; 312 today = -1;
313 for (int i=0; i<NUMDAYS; i++) { 313 for (int i=0; i<NUMDAYS; i++) {
314 events[i] = 0; 314 events[i] = 0;
315 days[i] = startdate.addDays(i); 315 days[i] = startdate.addDays(i);
316 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 316 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
317 317
318 // if today is in the currently displayed month, hilight today 318 // if today is in the currently displayed month, hilight today
319 if (days[i].year() == QDate::currentDate().year() && 319 if (days[i].year() == QDate::currentDate().year() &&
320 days[i].month() == QDate::currentDate().month() && 320 days[i].month() == QDate::currentDate().month() &&
321 days[i].day() == QDate::currentDate().day()) { 321 days[i].day() == QDate::currentDate().day()) {
322 today = i; 322 today = i;
323 } 323 }
324 } 324 }
325 // qDebug(QString("Today is visible at %1.").arg(today)); 325 // qDebug(QString("Today is visible at %1.").arg(today));
326} 326}
327 327
328void KODayMatrix::updateView() 328void KODayMatrix::updateView()
329{ 329{
330 updateView(startdate); 330 updateView(startdate);
331} 331}
332void KODayMatrix::repaintViewTimed() 332void KODayMatrix::repaintViewTimed()
333{ 333{
334 mRepaintTimer->stop(); 334 mRepaintTimer->stop();
335 repaint(false); 335 repaint(false);
336} 336}
337void KODayMatrix::updateViewTimed() 337void KODayMatrix::updateViewTimed()
338{ 338{
339 mUpdateTimer->stop(); 339 mUpdateTimer->stop();
340 if ( !mCalendar ) { 340 if ( !mCalendar ) {
341 qDebug("NOT CAL "); 341 qDebug("NOT CAL ");
342 return; 342 return;
343 } 343 }
344 //qDebug("KODayMatrix::updateViewTimed "); 344 //qDebug("KODayMatrix::updateViewTimed ");
345 for(int i = 0; i < NUMDAYS; i++) { 345 for(int i = 0; i < NUMDAYS; i++) {
346 // if events are set for the day then remember to draw it bold 346 // if events are set for the day then remember to draw it bold
347 QPtrList<Event> eventlist = mCalendar->events(days[i]); 347 QPtrList<Event> eventlist = mCalendar->events(days[i]);
348 Event *event; 348 Event *event;
349 int numEvents = eventlist.count(); 349 int numEvents = eventlist.count();
350 QString holiStr = ""; 350 QString holiStr = "";
351 bDays.clearBit(i); 351 bDays.clearBit(i);
352 for(event=eventlist.first();event != 0;event=eventlist.next()) { 352 for(event=eventlist.first();event != 0;event=eventlist.next()) {
353 ushort recurType = event->recurrence()->doesRecur(); 353 ushort recurType = event->recurrence()->doesRecur();
354 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 354 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
355 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 355 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
356 numEvents--; 356 numEvents--;
357 } 357 }
358 if ( event->isHoliday()) { 358 if ( event->isHoliday()) {
359 if ( !holiStr.isEmpty() ) 359 if ( !holiStr.isEmpty() )
360 holiStr += "\n"; 360 holiStr += "\n";
361 holiStr += event->summary(); 361 holiStr += event->summary();
362 if ( !event->location().isEmpty() ) 362 if ( !event->location().isEmpty() )