summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 2150654..475bb4a 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -224,206 +224,213 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
224 { 224 {
225 if ( currentItem() >= 0 ) { 225 if ( currentItem() >= 0 ) {
226 emit doubleClicked( item( currentItem() ) ); 226 emit doubleClicked( item( currentItem() ) );
227 e->accept(); 227 e->accept();
228 } else { 228 } else {
229 e->ignore(); 229 e->ignore();
230 } 230 }
231 } 231 }
232 break; 232 break;
233 case Key_Shift: 233 case Key_Shift:
234 emit shiftDown(); 234 emit shiftDown();
235 break; 235 break;
236 default: 236 default:
237 e->ignore(); 237 e->ignore();
238 break; 238 break;
239 } 239 }
240} 240}
241 241
242void KNoScrollListBox::oneDown() 242void KNoScrollListBox::oneDown()
243{ 243{
244 if ( count () ) { 244 if ( count () ) {
245 if ( currentItem()+1 == count () ) { 245 if ( currentItem()+1 == count () ) {
246 emit nextCell(); 246 emit nextCell();
247 } else { 247 } else {
248 resetOnFocusIn = false; 248 resetOnFocusIn = false;
249 setCurrentItem((currentItem()+1)%count()); 249 setCurrentItem((currentItem()+1)%count());
250 if(!itemVisible(currentItem())) { 250 if(!itemVisible(currentItem())) {
251 if(currentItem() == 0) { 251 if(currentItem() == 0) {
252 setTopItem(0); 252 setTopItem(0);
253 } else { 253 } else {
254 setTopItem(topItem()+1); 254 setTopItem(topItem()+1);
255 } 255 }
256 } 256 }
257 } 257 }
258 } 258 }
259} 259}
260void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 260void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
261{ 261{
262 switch(e->key()) { 262 switch(e->key()) {
263 case Key_Shift: 263 case Key_Shift:
264 emit shiftUp(); 264 emit shiftUp();
265 break; 265 break;
266 default: 266 default:
267 break; 267 break;
268 } 268 }
269} 269}
270 270
271void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 271void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
272{ 272{
273 QListBox::mousePressEvent(e); 273 QListBox::mousePressEvent(e);
274 274
275 if(e->button() == RightButton) { 275 if(e->button() == RightButton) {
276 emit rightClick(); 276 emit rightClick();
277 } 277 }
278} 278}
279 279
280MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s) 280MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s)
281 : QListBoxItem() 281 : QListBoxItem()
282{ 282{
283 mblockRepaint = true; 283 mblockRepaint = true;
284 setText( s ); 284 setText( s );
285 mMultiday = 0; 285 mMultiday = 0;
286 mIncidence = incidence; 286 mIncidence = incidence;
287 mDate = qd; 287 mDate = qd;
288 mRecur = false; 288 mRecur = false;
289 mAlarm = false; 289 mAlarm = false;
290 mReply = false; 290 mReply = false;
291 mInfo = false; 291 mInfo = false;
292 mdayPos = 0; 292 mdayPos = 0;
293 isWeekItem = KOPrefs::instance()->mMonthViewWeek; 293 isWeekItem = KOPrefs::instance()->mMonthViewWeek;
294} 294}
295void MonthViewItem::recycle( Incidence *incidence, QDate qd, const QString & s) 295void MonthViewItem::recycle( Incidence *incidence, QDate qd, const QString & s)
296{ 296{
297 setText( s ); 297 setText( s );
298 mMultiday = 0; 298 mMultiday = 0;
299 mIncidence = incidence; 299 mIncidence = incidence;
300 mDate = qd; 300 mDate = qd;
301 mRecur = false; 301 mRecur = false;
302 mAlarm = false; 302 mAlarm = false;
303 mReply = false; 303 mReply = false;
304 mInfo = false; 304 mInfo = false;
305 mdayPos = 0; 305 mdayPos = 0;
306} 306}
307 307
308void MonthViewItem::paint(QPainter *p) 308void MonthViewItem::paint(QPainter *p)
309{ 309{
310 if ( mblockRepaint ) { 310 if ( mblockRepaint ) {
311 return; 311 return;
312 } 312 }
313#if QT_VERSION >= 0x030000 313#if QT_VERSION >= 0x030000
314 bool sel = isSelected(); 314 bool sel = isSelected();
315#else 315#else
316 bool sel = selected(); 316 bool sel = selected();
317#endif 317#endif
318 318
319 319
320 int heihei = height( listBox () );
321 int x = 1;
320 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) 322 if (KOPrefs::instance()->mMonthViewUsesCategoryColor)
321 { 323 {
322 p->setBackgroundColor( palette().color( QPalette::Normal, \ 324 p->setBackgroundColor( palette().color( QPalette::Normal, \
323 sel ? QColorGroup::Highlight : QColorGroup::Background ) ); 325 sel ? QColorGroup::Highlight : QColorGroup::Background ) );
324 p->eraseRect( 0, 0, listBox()->maxItemWidth(), height( listBox() ) ); 326 p->eraseRect( 0, 0, listBox()->maxItemWidth(), heihei );
325 } 327 }
326 int x = 1; 328
327 //int y = 3;//(height() - mRecurPixmap.height()) /2; 329 //int y = 3;//(height() - mRecurPixmap.height()) /2;
328 int size = PIXMAP_SIZE; 330 int size = PIXMAP_SIZE;
329 if ( QApplication::desktop()->width() < 300 ) 331 if ( QApplication::desktop()->width() < 300 )
330 size = 3; 332 size = 3;
331 int heihei = height( listBox () );
332 int y = (heihei - size -1 ) /2; 333 int y = (heihei - size -1 ) /2;
333 334
335 if ( mIncidence->calID() > 1 ) {
336 p->fillRect ( x, y-2,size,size+4, KOPrefs::instance()->defaultColor( mIncidence->calID() ) );
337 p->drawRect ( x, y-2,size,size+4);
338 x += size + 1;
339 }
340
334 if ( KOPrefs::instance()->mMonthShowIcons ) { 341 if ( KOPrefs::instance()->mMonthShowIcons ) {
335 if ( mInfo ) { 342 if ( mInfo ) {
336 p->fillRect ( x, y,size,size, Qt::darkGreen ); 343 p->fillRect ( x, y,size,size, Qt::darkGreen );
337 x += size + 1; 344 x += size + 1;
338 } 345 }
339 if ( mRecur ) { 346 if ( mRecur ) {
340 p->fillRect ( x, y,size,size, Qt::blue ); 347 p->fillRect ( x, y,size,size, Qt::blue );
341 x += size + 1; 348 x += size + 1;
342 } 349 }
343 if ( mAlarm ) { 350 if ( mAlarm ) {
344 p->fillRect ( x, y,size,size, Qt::red ); 351 p->fillRect ( x, y,size,size, Qt::red );
345 x += size + 1; 352 x += size + 1;
346 } 353 }
347 if ( mReply ) { 354 if ( mReply ) {
348 p->fillRect ( x, y,size,size, Qt::yellow ); 355 p->fillRect ( x, y,size,size, Qt::yellow );
349 x += size + 1; 356 x += size + 1;
350 } 357 }
351 } 358 }
352 if ( mMultiday ) { 359 if ( mMultiday ) {
353 int yyy = y+(size/2); 360 int yyy = y+(size/2);
354 int sizeM = size+2; 361 int sizeM = size+2;
355 p->setBrush( QBrush::SolidPattern ); 362 p->setBrush( QBrush::SolidPattern );
356 p->drawLine ( x+1, yyy, x +sizeM +sizeM/2-1, yyy ) ; 363 p->drawLine ( x+1, yyy, x +sizeM +sizeM/2-1, yyy ) ;
357 if ( mMultiday == 2 || mMultiday == 3 ) { 364 if ( mMultiday == 2 || mMultiday == 3 ) {
358 QPointArray pa ( 3 ); 365 QPointArray pa ( 3 );
359 pa.setPoint (0, x, yyy ); 366 pa.setPoint (0, x, yyy );
360 pa.setPoint (1, x+sizeM/2, yyy+sizeM/2 ); 367 pa.setPoint (1, x+sizeM/2, yyy+sizeM/2 );
361 pa.setPoint (2, x+sizeM/2, yyy-sizeM/2 ); 368 pa.setPoint (2, x+sizeM/2, yyy-sizeM/2 );
362 p->drawPolygon( pa ); 369 p->drawPolygon( pa );
363 } 370 }
364 if ( mMultiday == 2 || mMultiday == 1 ) { 371 if ( mMultiday == 2 || mMultiday == 1 ) {
365 QPointArray pa ( 3 ); 372 QPointArray pa ( 3 );
366 pa.setPoint (0, x+sizeM +sizeM/2, yyy ); 373 pa.setPoint (0, x+sizeM +sizeM/2, yyy );
367 pa.setPoint (1, x+sizeM, yyy+sizeM/2 ); 374 pa.setPoint (1, x+sizeM, yyy+sizeM/2 );
368 pa.setPoint (2, x+sizeM, yyy-sizeM/2 ); 375 pa.setPoint (2, x+sizeM, yyy-sizeM/2 );
369 p->drawPolygon( pa ); 376 p->drawPolygon( pa );
370 } 377 }
371 if ( mMultiday == 1 ) { 378 if ( mMultiday == 1 ) {
372 // p->fillRect ( x, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) ); 379 // p->fillRect ( x, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
373 380
374 p->drawLine ( x+1, yyy-sizeM/2, x+1, yyy+sizeM/2 ); 381 p->drawLine ( x+1, yyy-sizeM/2, x+1, yyy+sizeM/2 );
375 } 382 }
376 if ( mMultiday == 3 ) { 383 if ( mMultiday == 3 ) {
377 // p->fillRect ( x+sizeM, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) ); 384 // p->fillRect ( x+sizeM, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
378 p->drawLine ( x+sizeM +sizeM/2-1, yyy-sizeM/2, x+sizeM +sizeM/2-1, yyy+sizeM/2 ); 385 p->drawLine ( x+sizeM +sizeM/2-1, yyy-sizeM/2, x+sizeM +sizeM/2-1, yyy+sizeM/2 );
379 386
380 } 387 }
381 x += sizeM/2 + 1; 388 x += sizeM/2 + 1;
382 x += sizeM + 1; 389 x += sizeM + 1;
383 } 390 }
384 391
385 if ( mIncidence->typeID() == todoID ){ 392 if ( mIncidence->typeID() == todoID ){
386 Todo* td = ( Todo* ) mIncidence; 393 Todo* td = ( Todo* ) mIncidence;
387 if ( td->isCompleted() ) { 394 if ( td->isCompleted() ) {
388 int half = size/2; 395 int half = size/2;
389 p->drawLine ( x, heihei/2, x +half , heihei/2 +half ) ; 396 p->drawLine ( x, heihei/2, x +half , heihei/2 +half ) ;
390 p->drawLine ( x +half , heihei/2 +half , x +half+half +2 , heihei/2 -2 ) ; 397 p->drawLine ( x +half , heihei/2 +half , x +half+half +2 , heihei/2 -2 ) ;
391 x += half+half + 4; 398 x += half+half + 4;
392 399
393 } else { 400 } else {
394 int val = td->percentComplete()/20; 401 int val = td->percentComplete()/20;
395 p->fillRect ( x+1, y-2, val ,size+4,Qt::black ); 402 p->fillRect ( x+1, y-2, val ,size+4,Qt::black );
396 p->drawRect ( x, y-2,7,size+4); 403 p->drawRect ( x, y-2,7,size+4);
397 x += size + 3; 404 x += size + 3;
398 } 405 }
399 } 406 }
400 QFontMetrics fm = p->fontMetrics(); 407 QFontMetrics fm = p->fontMetrics();
401 int yPos; 408 int yPos;
402 int pmheight = size; 409 int pmheight = size;
403 if( pmheight < fm.height() ) 410 if( pmheight < fm.height() )
404 yPos = fm.ascent() + fm.leading()/2; 411 yPos = fm.ascent() + fm.leading()/2;
405 else 412 else
406 yPos = pmheight/2 - fm.height()/2 + fm.ascent(); 413 yPos = pmheight/2 - fm.height()/2 + fm.ascent();
407 p->setPen( palette().color( QPalette::Normal, sel ? \ 414 p->setPen( palette().color( QPalette::Normal, sel ? \
408 QColorGroup::HighlightedText : QColorGroup::Foreground ) ); 415 QColorGroup::HighlightedText : QColorGroup::Foreground ) );
409 if ( KOPrefs::instance()->mMonthShowTimes || isWeekItem) { 416 if ( KOPrefs::instance()->mMonthShowTimes || isWeekItem) {
410 p->drawText( x, yPos, text() ); 417 p->drawText( x, yPos, text() );
411 if ( mIncidence->cancelled() ) { 418 if ( mIncidence->cancelled() ) {
412 int wid = fm.width( text() ); 419 int wid = fm.width( text() );
413 p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); 420 p->drawLine( x, heihei/2 ,x+wid, heihei/2 );
414 } 421 }
415 } else { 422 } else {
416 QString pText = text(); 423 QString pText = text();
417 if( pText.mid(2,1) == ":" ) 424 if( pText.mid(2,1) == ":" )
418 pText = pText.mid( 6 ); 425 pText = pText.mid( 6 );
419 p->drawText( x, yPos, pText ); 426 p->drawText( x, yPos, pText );
420 if ( mIncidence->cancelled() ) { 427 if ( mIncidence->cancelled() ) {
421 int wid = fm.width( pText ); 428 int wid = fm.width( pText );
422 p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); 429 p->drawLine( x, heihei/2 ,x+wid, heihei/2 );
423 } 430 }
424 } 431 }
425} 432}
426 433
427int MonthViewItem::height(const QListBox *lb) const 434int MonthViewItem::height(const QListBox *lb) const
428{ 435{
429 int ret = 10; 436 int ret = 10;
@@ -517,353 +524,361 @@ void MonthViewCell::setDate( const QDate &date )
517 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl; 524 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl;
518 mDate = date; 525 mDate = date;
519 526
520 527
521 528
522 //resizeEvent( 0 ); 529 //resizeEvent( 0 );
523} 530}
524 531
525QDate MonthViewCell::date() const 532QDate MonthViewCell::date() const
526{ 533{
527 return mDate; 534 return mDate;
528} 535}
529 536
530void MonthViewCell::setPrimary( bool primary ) 537void MonthViewCell::setPrimary( bool primary )
531{ 538{
532 mPrimary = primary; 539 mPrimary = primary;
533 //setMyPalette(); 540 //setMyPalette();
534} 541}
535void MonthViewCell::setMyPalette() 542void MonthViewCell::setMyPalette()
536{ 543{
537 544
538 if ( mHoliday) { 545 if ( mHoliday) {
539 if ( currentPalette == 1 ) return; 546 if ( currentPalette == 1 ) return;
540 mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) )); 547 mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) ));
541 setPalette( mHolidayPalette ); 548 setPalette( mHolidayPalette );
542 //mLabel->setPalette( mHolidayPalette ); 549 //mLabel->setPalette( mHolidayPalette );
543 currentPalette = 1; 550 currentPalette = 1;
544 551
545 } else { 552 } else {
546 if ( mPrimary ) { 553 if ( mPrimary ) {
547 if ( currentPalette == 2 ) return; 554 if ( currentPalette == 2 ) return;
548 mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); 555 mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) ));
549 //mLabel->setPalette( mPrimaryPalette ); 556 //mLabel->setPalette( mPrimaryPalette );
550 setPalette( mPrimaryPalette ); 557 setPalette( mPrimaryPalette );
551 currentPalette = 2; 558 currentPalette = 2;
552 559
553 } else { 560 } else {
554 if ( currentPalette == 3 ) return; 561 if ( currentPalette == 3 ) return;
555 setPalette( mNonPrimaryPalette ); 562 setPalette( mNonPrimaryPalette );
556 mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); 563 mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) ));
557 //mLabel->setPalette( mNonPrimaryPalette );; 564 //mLabel->setPalette( mNonPrimaryPalette );;
558 currentPalette = 3; 565 currentPalette = 3;
559 } 566 }
560 } 567 }
561 //QPalette pal = palette(); 568 //QPalette pal = palette();
562 569
563 //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); 570 //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) ));
564} 571}
565QPalette MonthViewCell::getPalette () 572QPalette MonthViewCell::getPalette ()
566{ 573{
567 if ( !KOPrefs::instance()->mMonthViewUsesDayColors ) 574 if ( !KOPrefs::instance()->mMonthViewUsesDayColors )
568 return mStandardPalette; 575 return mStandardPalette;
569 if ( mHoliday) { 576 if ( mHoliday) {
570 return mHolidayPalette ; 577 return mHolidayPalette ;
571 } else { 578 } else {
572 if ( mPrimary ) { 579 if ( mPrimary ) {
573 return mPrimaryPalette ; 580 return mPrimaryPalette ;
574 } 581 }
575 } 582 }
576 return mNonPrimaryPalette; 583 return mNonPrimaryPalette;
577} 584}
578bool MonthViewCell::isPrimary() const 585bool MonthViewCell::isPrimary() const
579{ 586{
580 return mPrimary; 587 return mPrimary;
581} 588}
582 589
583void MonthViewCell::setHoliday( bool holiday ) 590void MonthViewCell::setHoliday( bool holiday )
584{ 591{
585 mHoliday = holiday; 592 mHoliday = holiday;
586 //setMyPalette(); 593 //setMyPalette();
587} 594}
588 595
589void MonthViewCell::setHoliday( const QString &holiday ) 596void MonthViewCell::setHoliday( const QString &holiday )
590{ 597{
591 mHolidayString = holiday; 598 mHolidayString = holiday;
592 599
593 if ( !holiday.isEmpty() ) { 600 if ( !holiday.isEmpty() ) {
594 setHoliday( true ); 601 setHoliday( true );
595 } 602 }
596} 603}
597 604
598void MonthViewCell::startUpdateCell() 605void MonthViewCell::startUpdateCell()
599{ 606{
600 mdayCount = 0; 607 mdayCount = 0;
601 setFocusPolicy(NoFocus); 608 setFocusPolicy(NoFocus);
602 if ( !mMonthView->isUpdatePossible() ) 609 if ( !mMonthView->isUpdatePossible() )
603 return; 610 return;
604 MonthViewItem *mitem = (MonthViewItem*) firstItem (); 611 MonthViewItem *mitem = (MonthViewItem*) firstItem ();
605 while ( mitem ) { 612 while ( mitem ) {
606 mitem->setBlockRepaint( true ); 613 mitem->setBlockRepaint( true );
607 mitem = (MonthViewItem *)mitem->next(); 614 mitem = (MonthViewItem *)mitem->next();
608 } 615 }
609 if ( mAvailItemList.count() > 20 ) { 616 if ( mAvailItemList.count() > 20 ) {
610 mAvailItemList.setAutoDelete( true ); 617 mAvailItemList.setAutoDelete( true );
611 mAvailItemList.clear(); 618 mAvailItemList.clear();
612 mAvailItemList.setAutoDelete( false ); 619 mAvailItemList.setAutoDelete( false );
620 clear();
613 } 621 }
614 622
615 setPrimary( mDate.month()%2 ); 623 setPrimary( mDate.month()%2 );
616 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); 624 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays);
617 if ( mDate == QDate::currentDate() ) { 625 if ( mDate == QDate::currentDate() ) {
618 setLineWidth( 3 ); 626 setLineWidth( 3 );
619 } else { 627 } else {
620 setLineWidth( 1 ); 628 setLineWidth( 1 );
621 } 629 }
622 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem (); 630 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem ();
623 //clear(); 631 //clear();
624 while ( CurrentAvailItem ) { 632 while ( CurrentAvailItem ) {
625 MonthViewItem *item = CurrentAvailItem; 633 MonthViewItem *item = CurrentAvailItem;
626 CurrentAvailItem = (MonthViewItem *)item->next(); 634 CurrentAvailItem = (MonthViewItem *)item->next();
627 mAvailItemList.append( item ); 635 mAvailItemList.append( item );
628 takeItem ( item ); 636 takeItem ( item );
629 } 637 }
630 638
631#ifdef DESKTOP_VERSION 639#ifdef DESKTOP_VERSION
632 QToolTip::remove(this); 640 QToolTip::remove(this);
633#endif 641#endif
634 mToolTip.clear(); 642 mToolTip.clear();
635 //qApp->processEvents(); 643 //qApp->processEvents();
636#if 0 644#if 0
637 if ( !mHolidayString.isEmpty() ) { 645 if ( !mHolidayString.isEmpty() ) {
638 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString ); 646 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString );
639 item->setPalette( mHolidayPalette ); 647 item->setPalette( mHolidayPalette );
640 insertItem( item ); 648 insertItem( item );
641 mToolTip.append ( mHolidayString ); 649 mToolTip.append ( mHolidayString );
642 } 650 }
643#endif 651#endif
644} 652}
645 653
646int MonthViewCell::insertEvent(Event *event) 654int MonthViewCell::insertEvent(Event *event)
647{ 655{
648 bool useToolTips = true; 656 bool useToolTips = true;
649#ifndef DESKTOP_VERSION 657#ifndef DESKTOP_VERSION
650 useToolTips = false; 658 useToolTips = false;
651#endif 659#endif
652 QString mToolTipText; 660 QString mToolTipText;
653 setFocusPolicy(WheelFocus); 661 setFocusPolicy(WheelFocus);
654 if ( !(event->doesRecur() == Recurrence::rNone) ) { 662 if ( !(event->doesRecur() == Recurrence::rNone) ) {
655 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily ) 663 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily )
656 return mdayCount; 664 return mdayCount;
657 else 665 else
658 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 666 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
659 return mdayCount; 667 return mdayCount;
660 } 668 }
661 669
662 if ( event->isHoliday()) { 670 if ( event->isHoliday()) {
663 setHoliday( true ); 671 setHoliday( true );
664 if ( mDate.dayOfWeek() == 7 ) 672 if ( mDate.dayOfWeek() == 7 )
665 setLineWidth( 3 ); 673 setLineWidth( 3 );
666 } 674 }
667 QString text; 675 QString text;
668 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 676 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
669 if (event->isMultiDay()) { 677 if (event->isMultiDay()) {
670 QString prefix = "<->";multiday = 2; 678 QString prefix = "<->";multiday = 2;
671 QString time; 679 QString time;
672 if ( event->doesRecur() ) { 680 if ( event->doesRecur() ) {
673 if ( event->recursOn( mDate) ) { 681 if ( event->recursOn( mDate) ) {
674 prefix ="->" ;multiday = 1; 682 prefix ="->" ;multiday = 1;
675 } 683 }
676 else { 684 else {
677 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 685 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
678 if ( event->recursOn( mDate.addDays( -days)) ) { 686 if ( event->recursOn( mDate.addDays( -days)) ) {
679 prefix ="<-" ;multiday = 3; 687 prefix ="<-" ;multiday = 3;
680 } 688 }
681 } 689 }
682 690
683 } else { 691 } else {
684 if (mDate == event->dtStart().date()) { 692 if (mDate == event->dtStart().date()) {
685 prefix ="->" ;multiday = 1; 693 prefix ="->" ;multiday = 1;
686 } else if (mDate == event->dtEnd().date()) { 694 } else if (mDate == event->dtEnd().date()) {
687 prefix ="<-" ;multiday = 3; 695 prefix ="<-" ;multiday = 3;
688 } 696 }
689 } 697 }
690 if ( !event->doesFloat() ) { 698 if ( !event->doesFloat() ) {
691 if ( mDate == event->dtStart().date () ) 699 if ( mDate == event->dtStart().date () )
692 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 700 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
693 else if ( mDate == event->dtEnd().date () ) 701 else if ( mDate == event->dtEnd().date () )
694 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 702 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
695 703
696 } 704 }
697 text = time + event->summary(); 705 text = time + event->summary();
698 if ( useToolTips ) 706 if ( useToolTips )
699 mToolTipText += prefix + text; 707 mToolTipText += prefix + text;
700 } else { 708 } else {
701 if (event->doesFloat()) { 709 if (event->doesFloat()) {
702 text = event->summary(); 710 text = event->summary();
703 if ( useToolTips ) 711 if ( useToolTips )
704 mToolTipText += text; 712 mToolTipText += text;
705 } 713 }
706 else { 714 else {
707 text = KGlobal::locale()->formatTime(event->dtStart().time()); 715 text = KGlobal::locale()->formatTime(event->dtStart().time());
708 text += " " + event->summary(); 716 text += " " + event->summary();
709 if ( useToolTips ) 717 if ( useToolTips )
710 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 718 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
711 } 719 }
712 } 720 }
713 if ( useToolTips && ! event->location().isEmpty() ) { 721 if ( useToolTips && ! event->location().isEmpty() ) {
714 mToolTipText += " (" + event->location() +")"; 722 mToolTipText += " (" + event->location() +")";
715 } 723 }
716 MonthViewItem *item ; 724 MonthViewItem *item ;
717 725
718 if ( mAvailItemList.count() ) { 726 if ( mAvailItemList.count() ) {
719 item = mAvailItemList.first(); 727 item = mAvailItemList.first();
720 mAvailItemList.remove( item ); 728 mAvailItemList.remove( item );
721 item->recycle( event, mDate, text ); 729 item->recycle( event, mDate, text );
722 } else { 730 } else {
723 item = new MonthViewItem( event, mDate, text ); 731 item = new MonthViewItem( event, mDate, text );
724 } 732 }
725 733
726 QPalette pal; 734 QPalette pal;
727 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 735 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
728 QStringList categories = event->categories(); 736 QStringList categories = event->categories();
729 QString cat = categories.first(); 737 QString cat = categories.first();
730 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 738 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
731 pal = getPalette(); 739 pal = getPalette();
732 if (cat.isEmpty()) { 740 if (cat.isEmpty()) {
733 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 741 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
734 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() )); 742 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() ));
735 } else { 743 } else {
736 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 744 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
737 } 745 }
738 746
739 } else { 747 } else {
740 if (cat.isEmpty()) { 748 if (cat.isEmpty()) {
741 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 749 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
742 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() )); 750 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() ));
743 } else { 751 } else {
744 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 752 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
745 } 753 }
746 } 754 }
747 755
748 } else { 756 } else {
749 pal = mStandardPalette ; 757 pal = mStandardPalette ;
750 } 758 }
751 item->setPalette( pal ); 759 item->setPalette( pal );
752 item->setRecur( event->recurrence()->doesRecur() ); 760 item->setRecur( event->recurrence()->doesRecur() );
753 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() ); 761 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() );
754 item->setMoreInfo( event->description().length() > 0 ); 762 item->setMoreInfo( event->description().length() > 0 );
755#ifdef DESKTOP_VERSION 763#ifdef DESKTOP_VERSION
756 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails, 764 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
757 KOPrefs::instance()->email()); 765 KOPrefs::instance()->email());
758 if ( me != 0 ) { 766 if ( me != 0 ) {
759 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 767 if ( me->status() == Attendee::NeedsAction && me->RSVP())
760 item->setReply(true && multiday < 2); 768 item->setReply(true && multiday < 2);
761 else 769 else
762 item->setReply(false); 770 item->setReply(false);
763 } else 771 } else
764 item->setReply(false); 772 item->setReply(false);
765#endif 773#endif
774
766 item->setMultiDay( multiday ); 775 item->setMultiDay( multiday );
767 if ( multiday ) { 776 if ( multiday ) {
768 insertItem( item ,mdayCount); 777 insertItem( item ,mdayCount);
769 ++mdayCount; 778 ++mdayCount;
770 } else { 779 } else {
771 uint i; 780 uint i = mdayCount;
772 int pos = mdayCount; 781 uint pos = mdayCount;
773 for ( i = mdayCount; i < count();++i ) { 782 uint itcount = count();
783 if ( itcount > 1000 ) {
784 qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount);
785 itcount = 0;
786 }
787 for ( i = pos; i < itcount;++i ) {
788 // qDebug("i %d mday %u count %d ",i,itcount,mdayCount );
774 QListBoxItem* it = this->item ( i ); 789 QListBoxItem* it = this->item ( i );
775 if ( it && text < it->text() ) { 790 if ( it && text < it->text() ) {
776 pos = i; 791 pos = i;
777 break; 792 break;
778 } 793 }
779 ++pos; 794 ++pos;
780 } 795 }
781 insertItem( item ,pos); 796 insertItem( item ,pos);
782 } 797 }
783 if ( useToolTips ) { 798 if ( useToolTips ) {
784 mToolTip.append( mToolTipText ); 799 mToolTip.append( mToolTipText );
785 } 800 }
786 return mdayCount; 801 return mdayCount;
787} 802}
788void MonthViewCell::insertTodo(Todo *todo) 803void MonthViewCell::insertTodo(Todo *todo)
789{ 804{
790 setFocusPolicy(WheelFocus); 805 setFocusPolicy(WheelFocus);
791 QString text; 806 QString text;
792 if (todo->hasDueDate()) { 807 if (todo->hasDueDate()) {
793 if (!todo->doesFloat()) { 808 if (!todo->doesFloat()) {
794 text += KGlobal::locale()->formatTime(todo->dtDue().time()); 809 text += KGlobal::locale()->formatTime(todo->dtDue().time());
795 text += " "; 810 text += " ";
796 } 811 }
797 } 812 }
798 text += todo->summary(); 813 text += todo->summary();
799 MonthViewItem *item ; 814 MonthViewItem *item ;
800 if ( mAvailItemList.count() ) { 815 if ( mAvailItemList.count() ) {
801 item = mAvailItemList.first(); 816 item = mAvailItemList.first();
802 mAvailItemList.remove( item ); 817 mAvailItemList.remove( item );
803 item->recycle( todo, mDate, text ); 818 item->recycle( todo, mDate, text );
804 } else { 819 } else {
805 item = new MonthViewItem( todo, mDate, text ); 820 item = new MonthViewItem( todo, mDate, text );
806 } 821 }
807 //MonthViewItem *item = new MonthViewItem( todo, mDate, text ); 822 //MonthViewItem *item = new MonthViewItem( todo, mDate, text );
808 //item->setPalette( mStandardPalette ); 823 //item->setPalette( mStandardPalette );
809 QPalette pal; 824 QPalette pal;
810 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 825 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
811 QStringList categories = todo->categories(); 826 QStringList categories = todo->categories();
812 QString cat = categories.first(); 827 QString cat = categories.first();
813 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 828 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
814 pal = getPalette(); 829 pal = getPalette();
815 if (cat.isEmpty()) { 830 if (cat.isEmpty()) {
816 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 831 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
817 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( todo->calID() )); 832 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( todo->calID() ));
818 } else { 833 } else {
819 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 834 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
820 } 835 }
821 836
822 } else { 837 } else {
823 if (cat.isEmpty()) { 838 if (cat.isEmpty()) {
824 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 839 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
825 pal = QPalette(KOPrefs::instance()->defaultColor( todo->calID() ), KOPrefs::instance()->defaultColor( todo->calID() )); 840 pal = QPalette(KOPrefs::instance()->defaultColor( todo->calID() ), KOPrefs::instance()->defaultColor( todo->calID() ));
826 } else { 841 } else {
827 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 842 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
828 } 843 }
829 } 844 }
830 845
831 } else { 846 } else {
832 pal = mStandardPalette ; 847 pal = mStandardPalette ;
833 } 848 }
834 item->setPalette( pal ); 849 item->setPalette( pal );
835 item->setRecur( todo->recurrence()->doesRecur() ); 850 item->setRecur( todo->recurrence()->doesRecur() );
836 item->setAlarm( todo->isAlarmEnabled() && todo->alarmEnabled() ); 851 item->setAlarm( todo->isAlarmEnabled() && todo->alarmEnabled() );
837 item->setMoreInfo( todo->description().length() > 0 ); 852 item->setMoreInfo( todo->description().length() > 0 );
838 insertItem( item , count()); 853 insertItem( item , count());
839#ifdef DESKTOP_VERSION 854#ifdef DESKTOP_VERSION
840 mToolTip.append( text ); 855 mToolTip.append( text );
841#endif 856#endif
842} 857}
843void MonthViewCell::repaintfinishUpdateCell() 858void MonthViewCell::repaintfinishUpdateCell()
844{ 859{
845 MonthViewItem *mitem = (MonthViewItem*) firstItem (); 860 MonthViewItem *mitem = (MonthViewItem*) firstItem ();
846 while ( mitem ) { 861 while ( mitem ) {
847 mitem->setBlockRepaint( false ); 862 mitem->setBlockRepaint( false );
848 updateItem ( mitem ); 863 updateItem ( mitem );
849 mitem = (MonthViewItem *)mitem->next(); 864 mitem = (MonthViewItem *)mitem->next();
850 } 865 }
851} 866}
852void MonthViewCell::finishUpdateCell() 867void MonthViewCell::finishUpdateCell()
853{ 868{
854 869
855 870
856 871
857#ifdef DESKTOP_VERSION 872#ifdef DESKTOP_VERSION
858 if (mToolTip.count() > 0 ) { 873 if (mToolTip.count() > 0 ) {
859 mToolTip.sort(); 874 mToolTip.sort();
860 QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),""); 875 QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),"");
861 } 876 }
862#endif 877#endif
863 //sort(); 878 //sort();
864 //setMyPalette(); 879 //setMyPalette();
865 setMyPalette(); 880 setMyPalette();
866 881
867 resizeEvent( 0 ); 882 resizeEvent( 0 );
868 883
869} 884}