summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-02-01 23:46:24 (UTC)
committer zautrix <zautrix>2005-02-01 23:46:24 (UTC)
commit9ecfd0660e36b6b8dd7401f0edb16dd3d6f03289 (patch) (unidiff)
treed80eb20b97ab401b4e9e34f25b65030fb2c0b035 /korganizer
parentafa94abe147d23e09a14a81e47d04d4a3d5670c3 (diff)
downloadkdepimpi-9ecfd0660e36b6b8dd7401f0edb16dd3d6f03289.zip
kdepimpi-9ecfd0660e36b6b8dd7401f0edb16dd3d6f03289.tar.gz
kdepimpi-9ecfd0660e36b6b8dd7401f0edb16dd3d6f03289.tar.bz2
text
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 9888566..6294b98 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -437,972 +437,971 @@ void MonthViewCell::insertEvent(Event *event)
437 return; 437 return;
438 else 438 else
439 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 439 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
440 return; 440 return;
441 } 441 }
442 442
443 if ( event->categories().contains("Holiday") || 443 if ( event->categories().contains("Holiday") ||
444 event->categories().contains(i18n("Holiday"))) { 444 event->categories().contains(i18n("Holiday"))) {
445 setHoliday( true ); 445 setHoliday( true );
446 if ( mDate.dayOfWeek() == 7 ) 446 if ( mDate.dayOfWeek() == 7 )
447 mItemList->setLineWidth( 3 ); 447 mItemList->setLineWidth( 3 );
448 } 448 }
449 QString text; 449 QString text;
450 if (event->isMultiDay()) { 450 if (event->isMultiDay()) {
451 QString prefix = "<->"; 451 QString prefix = "<->";
452 if ( event->doesRecur() ) { 452 if ( event->doesRecur() ) {
453 if ( event->recursOn( mDate) ) 453 if ( event->recursOn( mDate) )
454 prefix ="->" ; 454 prefix ="->" ;
455 else { 455 else {
456 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 456 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
457 if ( event->recursOn( mDate.addDays( -days)) ) 457 if ( event->recursOn( mDate.addDays( -days)) )
458 prefix ="<-" ; 458 prefix ="<-" ;
459 } 459 }
460 460
461 } else { 461 } else {
462 if (mDate == event->dtStart().date()) { 462 if (mDate == event->dtStart().date()) {
463 prefix ="->" ; 463 prefix ="->" ;
464 } else if (mDate == event->dtEnd().date()) { 464 } else if (mDate == event->dtEnd().date()) {
465 prefix ="<-" ; 465 prefix ="<-" ;
466 } 466 }
467 } 467 }
468 if ( !event->doesFloat() ) { 468 if ( !event->doesFloat() ) {
469 if ( mDate == event->dtStart().date () ) 469 if ( mDate == event->dtStart().date () )
470 prefix += KGlobal::locale()->formatTime(event->dtStart().time())+" "; 470 prefix += KGlobal::locale()->formatTime(event->dtStart().time())+" ";
471 else if ( mDate == event->dtEnd().date () ) 471 else if ( mDate == event->dtEnd().date () )
472 prefix += KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 472 prefix += KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
473 473
474 } 474 }
475 text = prefix + event->summary(); 475 text = prefix + event->summary();
476 mToolTip += text; 476 mToolTip += text;
477 } else { 477 } else {
478 if (event->doesFloat()) { 478 if (event->doesFloat()) {
479 text = event->summary(); 479 text = event->summary();
480 mToolTip += text; 480 mToolTip += text;
481 } 481 }
482 else { 482 else {
483 text = KGlobal::locale()->formatTime(event->dtStart().time()); 483 text = KGlobal::locale()->formatTime(event->dtStart().time());
484 text += " " + event->summary(); 484 text += " " + event->summary();
485 mToolTip += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 485 mToolTip += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
486 } 486 }
487 } 487 }
488 488
489 MonthViewItem *item = new MonthViewItem( event, mDate, text ); 489 MonthViewItem *item = new MonthViewItem( event, mDate, text );
490 QPalette pal; 490 QPalette pal;
491 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 491 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
492 QStringList categories = event->categories(); 492 QStringList categories = event->categories();
493 QString cat = categories.first(); 493 QString cat = categories.first();
494 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 494 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
495 pal = getPalette(); 495 pal = getPalette();
496 if (cat.isEmpty()) { 496 if (cat.isEmpty()) {
497 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 497 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
498 } else { 498 } else {
499 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 499 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
500 } 500 }
501 501
502 } else { 502 } else {
503 if (cat.isEmpty()) { 503 if (cat.isEmpty()) {
504 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 504 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
505 } else { 505 } else {
506 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 506 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
507 } 507 }
508 } 508 }
509 509
510 } else { 510 } else {
511 pal = mStandardPalette ; 511 pal = mStandardPalette ;
512 } 512 }
513 item->setPalette( pal ); 513 item->setPalette( pal );
514 item->setRecur( event->recurrence()->doesRecur() ); 514 item->setRecur( event->recurrence()->doesRecur() );
515 item->setAlarm( event->isAlarmEnabled() ); 515 item->setAlarm( event->isAlarmEnabled() );
516 item->setMoreInfo( event->description().length() > 0 ); 516 item->setMoreInfo( event->description().length() > 0 );
517#ifdef DESKTOP_VERSION 517#ifdef DESKTOP_VERSION
518 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails, 518 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
519 KOPrefs::instance()->email()); 519 KOPrefs::instance()->email());
520 if ( me != 0 ) { 520 if ( me != 0 ) {
521 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 521 if ( me->status() == Attendee::NeedsAction && me->RSVP())
522 item->setReply(true); 522 item->setReply(true);
523 else 523 else
524 item->setReply(false); 524 item->setReply(false);
525 } else 525 } else
526 item->setReply(false); 526 item->setReply(false);
527#endif 527#endif
528 mItemList->insertItem( item ); 528 mItemList->insertItem( item );
529 mToolTip += "\n"; 529 mToolTip += "\n";
530} 530}
531void MonthViewCell::insertTodo(Todo *todo) 531void MonthViewCell::insertTodo(Todo *todo)
532{ 532{
533 QString text; 533 QString text;
534 if (todo->hasDueDate()) { 534 if (todo->hasDueDate()) {
535 if (!todo->doesFloat()) { 535 if (!todo->doesFloat()) {
536 text += KGlobal::locale()->formatTime(todo->dtDue().time()); 536 text += KGlobal::locale()->formatTime(todo->dtDue().time());
537 text += " "; 537 text += " ";
538 } 538 }
539 } 539 }
540 text += i18n("To-Do: %1").arg(todo->summary()); 540 text += i18n("To-Do: %1").arg(todo->summary());
541 541
542 MonthViewItem *item = new MonthViewItem( todo, mDate, text ); 542 MonthViewItem *item = new MonthViewItem( todo, mDate, text );
543 //item->setPalette( mStandardPalette ); 543 //item->setPalette( mStandardPalette );
544 QPalette pal; 544 QPalette pal;
545 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 545 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
546 QStringList categories = todo->categories(); 546 QStringList categories = todo->categories();
547 QString cat = categories.first(); 547 QString cat = categories.first();
548 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 548 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
549 pal = getPalette(); 549 pal = getPalette();
550 if (cat.isEmpty()) { 550 if (cat.isEmpty()) {
551 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 551 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
552 } else { 552 } else {
553 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 553 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
554 } 554 }
555 555
556 } else { 556 } else {
557 if (cat.isEmpty()) { 557 if (cat.isEmpty()) {
558 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 558 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
559 } else { 559 } else {
560 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 560 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
561 } 561 }
562 } 562 }
563 563
564 } else { 564 } else {
565 pal = mStandardPalette ; 565 pal = mStandardPalette ;
566 } 566 }
567 item->setPalette( pal ); 567 item->setPalette( pal );
568 mItemList->insertItem( item ); 568 mItemList->insertItem( item );
569 mToolTip += text+"\n"; 569 mToolTip += text+"\n";
570} 570}
571void MonthViewCell::finishUpdateCell() 571void MonthViewCell::finishUpdateCell()
572{ 572{
573#ifdef DESKTOP_VERSION 573#ifdef DESKTOP_VERSION
574 if (mToolTip != "") 574 if (mToolTip != "")
575 QToolTip::add(this,mToolTip,toolTipGroup(),""); 575 QToolTip::add(this,mToolTip,toolTipGroup(),"");
576#endif 576#endif
577 mItemList->sort(); 577 mItemList->sort();
578 //setMyPalette(); 578 //setMyPalette();
579 setMyPalette(); 579 setMyPalette();
580 QString text; 580 QString text;
581 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 581 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
582 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 582 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
583 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; 583 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " ";
584 mLabel->resize( mLabelBigSize ); 584 mLabel->resize( mLabelBigSize );
585 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 585 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
586 } else { 586 } else {
587 mLabel->resize( mLabelSize ); 587 mLabel->resize( mLabelSize );
588 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 588 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
589 } 589 }
590 590
591 mLabel->setText( text ); 591 mLabel->setText( text );
592 resizeEvent( 0 ); 592 resizeEvent( 0 );
593} 593}
594void MonthViewCell::updateCell() 594void MonthViewCell::updateCell()
595{ 595{
596 if ( !mMonthView->isUpdatePossible() ) 596 if ( !mMonthView->isUpdatePossible() )
597 return; 597 return;
598 startUpdateCell(); 598 startUpdateCell();
599 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 599 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
600 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); 600 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true );
601 Event *event; 601 Event *event;
602 for( event = events.first(); event; event = events.next() ) { // for event 602 for( event = events.first(); event; event = events.next() ) { // for event
603 insertEvent(event); 603 insertEvent(event);
604 } 604 }
605 // insert due todos 605 // insert due todos
606 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); 606 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate );
607 Todo *todo; 607 Todo *todo;
608 for(todo = todos.first(); todo; todo = todos.next()) { 608 for(todo = todos.first(); todo; todo = todos.next()) {
609 insertTodo( todo ); 609 insertTodo( todo );
610 } 610 }
611 finishUpdateCell(); 611 finishUpdateCell();
612 // if ( isVisible()) 612 // if ( isVisible())
613 //qApp->processEvents(); 613 //qApp->processEvents();
614} 614}
615 615
616void MonthViewCell::updateConfig() 616void MonthViewCell::updateConfig()
617{ 617{
618 setFont( KOPrefs::instance()->mMonthViewFont ); 618 setFont( KOPrefs::instance()->mMonthViewFont );
619 619
620 QFontMetrics fm( font() ); 620 QFontMetrics fm( font() );
621 mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 ); 621 mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 );
622 mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 ); 622 mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 );
623 mHolidayPalette = mStandardPalette; 623 mHolidayPalette = mStandardPalette;
624 mPrimaryPalette = mStandardPalette; 624 mPrimaryPalette = mStandardPalette;
625 mNonPrimaryPalette = mStandardPalette; 625 mNonPrimaryPalette = mStandardPalette;
626 if ( KOPrefs::instance()->mMonthViewUsesDayColors ) { 626 if ( KOPrefs::instance()->mMonthViewUsesDayColors ) {
627 mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor ); 627 mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor );
628 mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor ); 628 mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor );
629 mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark()); 629 mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark());
630 mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark()); 630 mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark());
631 mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); 631 mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor);
632 mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); 632 mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor);
633 mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); 633 mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark());
634 mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); 634 mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor);
635 mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); 635 mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor);
636 } 636 }
637 //updateCell(); 637 //updateCell();
638} 638}
639 639
640void MonthViewCell::enableScrollBars( bool enabled ) 640void MonthViewCell::enableScrollBars( bool enabled )
641{ 641{
642 if ( enabled ) { 642 if ( enabled ) {
643 mItemList->setVScrollBarMode(QScrollView::Auto); 643 mItemList->setVScrollBarMode(QScrollView::Auto);
644 mItemList->setHScrollBarMode(QScrollView::Auto); 644 mItemList->setHScrollBarMode(QScrollView::Auto);
645 } else { 645 } else {
646 mItemList->setVScrollBarMode(QScrollView::AlwaysOff); 646 mItemList->setVScrollBarMode(QScrollView::AlwaysOff);
647 mItemList->setHScrollBarMode(QScrollView::AlwaysOff); 647 mItemList->setHScrollBarMode(QScrollView::AlwaysOff);
648 } 648 }
649} 649}
650 650
651Incidence *MonthViewCell::selectedIncidence() 651Incidence *MonthViewCell::selectedIncidence()
652{ 652{
653 int index = mItemList->currentItem(); 653 int index = mItemList->currentItem();
654 if ( index < 0 ) return 0; 654 if ( index < 0 ) return 0;
655 655
656 MonthViewItem *item = 656 MonthViewItem *item =
657 static_cast<MonthViewItem *>( mItemList->item( index ) ); 657 static_cast<MonthViewItem *>( mItemList->item( index ) );
658 658
659 if ( !item ) return 0; 659 if ( !item ) return 0;
660 660
661 return item->incidence(); 661 return item->incidence();
662} 662}
663 663
664QDate MonthViewCell::selectedIncidenceDate() 664QDate MonthViewCell::selectedIncidenceDate()
665{ 665{
666 QDate qd; 666 QDate qd;
667 int index = mItemList->currentItem(); 667 int index = mItemList->currentItem();
668 if ( index < 0 ) return qd; 668 if ( index < 0 ) return qd;
669 669
670 MonthViewItem *item = 670 MonthViewItem *item =
671 static_cast<MonthViewItem *>( mItemList->item( index ) ); 671 static_cast<MonthViewItem *>( mItemList->item( index ) );
672 672
673 if ( !item ) return qd; 673 if ( !item ) return qd;
674 674
675 return item->incidenceDate(); 675 return item->incidenceDate();
676} 676}
677 677
678void MonthViewCell::deselect() 678void MonthViewCell::deselect()
679{ 679{
680 mItemList->clearSelection(); 680 mItemList->clearSelection();
681 enableScrollBars( false ); 681 enableScrollBars( false );
682 // updateCell(); 682 // updateCell();
683} 683}
684void MonthViewCell::select() 684void MonthViewCell::select()
685{ 685{
686 ;// updateCell(); 686 ;// updateCell();
687} 687}
688 688
689void MonthViewCell::resizeEvent ( QResizeEvent * ) 689void MonthViewCell::resizeEvent ( QResizeEvent * )
690{ 690{
691 if ( !mMonthView->isUpdatePossible() ) 691 if ( !mMonthView->isUpdatePossible() )
692 return; 692 return;
693#ifndef DESKTOP_VERSION 693
694 if ( !isVisible() ){
695 return;
696 }
697#endif
698 int size = height() - mLabel->height() - 2; 694 int size = height() - mLabel->height() - 2;
699 if ( size > 0 ) 695 if ( size > 0 )
700 mItemList->verticalScrollBar()->setMaximumHeight( size ); 696 mItemList->verticalScrollBar()->setMaximumHeight( size );
701 size = width() - mLabel->width() -2; 697 size = width() - mLabel->width() -2;
702 if ( size > 0 ) 698 if ( size > 0 )
703 mItemList->horizontalScrollBar()->setMaximumWidth( size ); 699 mItemList->horizontalScrollBar()->setMaximumWidth( size );
704 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); 700 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() );
705 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 701 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
706} 702}
707 703
708void MonthViewCell::defaultAction( QListBoxItem *item ) 704void MonthViewCell::defaultAction( QListBoxItem *item )
709{ 705{
710 if ( !item ) return; 706 if ( !item ) return;
711 707
712 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 708 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
713 Incidence *incidence = eventItem->incidence(); 709 Incidence *incidence = eventItem->incidence();
714 if ( incidence ) mMonthView->defaultAction( incidence ); 710 if ( incidence ) mMonthView->defaultAction( incidence );
715} 711}
716void MonthViewCell::showDay() 712void MonthViewCell::showDay()
717{ 713{
718 emit showDaySignal( date() ); 714 emit showDaySignal( date() );
719} 715}
720void MonthViewCell::newEvent() 716void MonthViewCell::newEvent()
721{ 717{
722 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 718 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
723 emit newEventSignal( dt ); 719 emit newEventSignal( dt );
724} 720}
725void MonthViewCell::cellClicked( QListBoxItem *item ) 721void MonthViewCell::cellClicked( QListBoxItem *item )
726{ 722{
727 static QListBoxItem * lastClicked = 0; 723 static QListBoxItem * lastClicked = 0;
728 if ( item == 0 ) { 724 if ( item == 0 ) {
729 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 725 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
730 emit newEventSignal( dt ); 726 emit newEventSignal( dt );
731 return; 727 return;
732 } 728 }
733 /* 729 /*
734 if ( lastClicked ) 730 if ( lastClicked )
735 if ( ! item ) { 731 if ( ! item ) {
736 if ( lastClicked->listBox() != item->listBox() ) 732 if ( lastClicked->listBox() != item->listBox() )
737 lastClicked->listBox()->clearSelection(); 733 lastClicked->listBox()->clearSelection();
738 } 734 }
739 */ 735 */
740 736
741 mMonthView->setSelectedCell( this ); 737 mMonthView->setSelectedCell( this );
742 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); 738 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
743 select(); 739 select();
744} 740}
745 741
746void MonthViewCell::contextMenu( QListBoxItem *item ) 742void MonthViewCell::contextMenu( QListBoxItem *item )
747{ 743{
748 if ( !item ) return; 744 if ( !item ) return;
749 745
750 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 746 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
751 Incidence *incidence = eventItem->incidence(); 747 Incidence *incidence = eventItem->incidence();
752 if ( incidence ) mMonthView->showContextMenu( incidence ); 748 if ( incidence ) mMonthView->showContextMenu( incidence );
753} 749}
754 750
755void MonthViewCell::selection( QListBoxItem *item ) 751void MonthViewCell::selection( QListBoxItem *item )
756{ 752{
757 if ( !item ) return; 753 if ( !item ) return;
758 754
759 mMonthView->setSelectedCell( this ); 755 mMonthView->setSelectedCell( this );
760} 756}
761 757
762 758
763// ******************************************************************************* 759// *******************************************************************************
764// ******************************************************************************* 760// *******************************************************************************
765// ******************************************************************************* 761// *******************************************************************************
766 762
767 763
768KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 764KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
769 : KOEventView( calendar, parent, name ), 765 : KOEventView( calendar, parent, name ),
770 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 766 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
771 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 767 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
772{ 768{
773 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 769 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
774 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 770 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
775 if ( mShowWeekView ) 771 if ( mShowWeekView )
776 mWeekStartsMonday = true; 772 mWeekStartsMonday = true;
777 updatePossible = false; 773 updatePossible = false;
778 mCells.setAutoDelete( true ); 774 mCells.setAutoDelete( true );
779 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 775 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
780 // mDayLayout = new QGridLayout( this ); 776 // mDayLayout = new QGridLayout( this );
781 // create the day of the week labels (Sun, Mon, etc) and add them to 777 // create the day of the week labels (Sun, Mon, etc) and add them to
782 // the layout. 778 // the layout.
783 mDayLabels.resize( mDaysPerWeek ); 779 mDayLabels.resize( mDaysPerWeek );
784 QFont bfont = font(); 780 QFont bfont = font();
785 if ( QApplication::desktop()->width() < 650 ) { 781 if ( QApplication::desktop()->width() < 650 ) {
786 bfont.setPointSize( bfont.pointSize() - 2 ); 782 bfont.setPointSize( bfont.pointSize() - 2 );
787 } 783 }
788 bfont.setBold( true ); 784 bfont.setBold( true );
789 int i; 785 int i;
790 786
791 for( i = 0; i < mDaysPerWeek; i++ ) { 787 for( i = 0; i < mDaysPerWeek; i++ ) {
792 QLabel *label = new QLabel( this ); 788 QLabel *label = new QLabel( this );
793 label->setFont(bfont); 789 label->setFont(bfont);
794 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 790 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
795 label->setLineWidth(1); 791 label->setLineWidth(1);
796 label->setAlignment(AlignCenter); 792 label->setAlignment(AlignCenter);
797 mDayLabels.insert( i, label ); 793 mDayLabels.insert( i, label );
798 } 794 }
799 795
800 bfont.setBold( false ); 796 bfont.setBold( false );
801 mWeekLabels.resize( mNumWeeks+1 ); 797 mWeekLabels.resize( mNumWeeks+1 );
802 for( i = 0; i < mNumWeeks+1; i++ ) { 798 for( i = 0; i < mNumWeeks+1; i++ ) {
803 KOWeekButton *label = new KOWeekButton( this ); 799 KOWeekButton *label = new KOWeekButton( this );
804 label->setFont(bfont); 800 label->setFont(bfont);
805 connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) ); 801 connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) );
806 label->setFlat(true); 802 label->setFlat(true);
807 QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view")); 803 QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view"));
808 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 804 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
809 //label->setLineWidth(1); 805 //label->setLineWidth(1);
810 //label->setAlignment(AlignCenter); 806 //label->setAlignment(AlignCenter);
811 mWeekLabels.insert( i, label ); 807 mWeekLabels.insert( i, label );
812 } 808 }
813 mWeekLabels[mNumWeeks]->setText( i18n("W")); 809 mWeekLabels[mNumWeeks]->setText( i18n("W"));
814 int row, col; 810 int row, col;
815 mCells.resize( mNumCells ); 811 mCells.resize( mNumCells );
816 for( row = 0; row < mNumWeeks; ++row ) { 812 for( row = 0; row < mNumWeeks; ++row ) {
817 for( col = 0; col < mDaysPerWeek; ++col ) { 813 for( col = 0; col < mDaysPerWeek; ++col ) {
818 MonthViewCell *cell = new MonthViewCell( this ); 814 MonthViewCell *cell = new MonthViewCell( this );
819 mCells.insert( row * mDaysPerWeek + col, cell ); 815 mCells.insert( row * mDaysPerWeek + col, cell );
820 816
821 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 817 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
822 SLOT( defaultAction( Incidence * ) ) ); 818 SLOT( defaultAction( Incidence * ) ) );
823 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 819 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
824 SIGNAL( newEventSignal( QDateTime ) ) ); 820 SIGNAL( newEventSignal( QDateTime ) ) );
825 connect( cell, SIGNAL( showDaySignal( QDate ) ), 821 connect( cell, SIGNAL( showDaySignal( QDate ) ),
826 SIGNAL( showDaySignal( QDate ) ) ); 822 SIGNAL( showDaySignal( QDate ) ) );
827 } 823 }
828 } 824 }
829 825
830 connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), 826 connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ),
831 SLOT( switchView() ) ); 827 SLOT( switchView() ) );
832 mContextMenu = eventPopup(); 828 mContextMenu = eventPopup();
833 // updateConfig(); //useless here 829 // updateConfig(); //useless here
834 830
835 emit incidenceSelected( 0 ); 831 emit incidenceSelected( 0 );
836} 832}
837 833
838KOMonthView::~KOMonthView() 834KOMonthView::~KOMonthView()
839{ 835{
840 delete mContextMenu; 836 delete mContextMenu;
841} 837}
842void KOMonthView::switchView() 838void KOMonthView::switchView()
843{ 839{
840 if ( selectedCell( ) )
841 selectedCell()->deselect();
844 mShowWeekView = !mShowWeekView; 842 mShowWeekView = !mShowWeekView;
845 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 843 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
846 emit showNavigator( !mShowWeekView ); 844 emit showNavigator( !mShowWeekView );
847 computeLayout(); 845 computeLayout();
848 updateConfig(); 846 updateConfig();
849} 847}
850 848
851int KOMonthView::maxDatesHint() 849int KOMonthView::maxDatesHint()
852{ 850{
853 return mNumCells; 851 return mNumCells;
854} 852}
855 853
856int KOMonthView::currentDateCount() 854int KOMonthView::currentDateCount()
857{ 855{
858 return mNumCells; 856 return mNumCells;
859} 857}
860 858
861QPtrList<Incidence> KOMonthView::selectedIncidences() 859QPtrList<Incidence> KOMonthView::selectedIncidences()
862{ 860{
863 QPtrList<Incidence> selected; 861 QPtrList<Incidence> selected;
864 862
865 if ( mSelectedCell ) { 863 if ( mSelectedCell ) {
866 Incidence *incidence = mSelectedCell->selectedIncidence(); 864 Incidence *incidence = mSelectedCell->selectedIncidence();
867 if ( incidence ) selected.append( incidence ); 865 if ( incidence ) selected.append( incidence );
868 } 866 }
869 867
870 return selected; 868 return selected;
871} 869}
872 870
873DateList KOMonthView::selectedDates() 871DateList KOMonthView::selectedDates()
874{ 872{
875 DateList selected; 873 DateList selected;
876 874
877 if ( mSelectedCell ) { 875 if ( mSelectedCell ) {
878 QDate qd = mSelectedCell->selectedIncidenceDate(); 876 QDate qd = mSelectedCell->selectedIncidenceDate();
879 if ( qd.isValid() ) selected.append( qd ); 877 if ( qd.isValid() ) selected.append( qd );
880 } 878 }
881 879
882 return selected; 880 return selected;
883} 881}
884 882
885void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 883void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
886 const QDate &td) 884 const QDate &td)
887{ 885{
888#ifndef KORG_NOPRINTER 886#ifndef KORG_NOPRINTER
889 calPrinter->preview(CalPrinter::Month, fd, td); 887 calPrinter->preview(CalPrinter::Month, fd, td);
890#endif 888#endif
891} 889}
892 890
893void KOMonthView::updateConfig() 891void KOMonthView::updateConfig()
894{ 892{
895 893
896 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 894 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
897 895
898 if ( mShowWeekView ) 896 if ( mShowWeekView )
899 mWeekStartsMonday = true; 897 mWeekStartsMonday = true;
900 QFontMetrics fontmetric(mDayLabels[0]->font()); 898 QFontMetrics fontmetric(mDayLabels[0]->font());
901 mWidthLongDayLabel = 0; 899 mWidthLongDayLabel = 0;
902 900
903 for (int i = 0; i < 7; i++) { 901 for (int i = 0; i < 7; i++) {
904 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 902 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
905 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 903 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
906 } 904 }
907 bool temp = mShowSatSunComp ; 905 bool temp = mShowSatSunComp ;
908 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 906 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
909 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 907 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
910 computeLayout(); 908 computeLayout();
911 updateDayLabels(); 909 updateDayLabels();
912 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 910 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
913 int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 911 int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
914 //resizeEvent( 0 ); 912 //resizeEvent( 0 );
915 for (uint i = 0; i < mCells.count(); ++i) { 913 for (uint i = 0; i < mCells.count(); ++i) {
916 mCells[i]->updateConfig(); 914 mCells[i]->updateConfig();
917 } 915 }
918#ifdef DESKTOP_VERSION 916#ifdef DESKTOP_VERSION
919 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 917 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
920#endif 918#endif
921 updateView(); 919 updateView();
922} 920}
923 921
924void KOMonthView::updateDayLabels() 922void KOMonthView::updateDayLabels()
925{ 923{
926 924
927 for (int i = 0; i < 7; i++) { 925 for (int i = 0; i < 7; i++) {
928 if (mWeekStartsMonday) { 926 if (mWeekStartsMonday) {
929 bool show = mShortDayLabels; 927 bool show = mShortDayLabels;
930 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > mDayLabels[i]->width() ) 928 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > mDayLabels[i]->width() )
931 show = true; 929 show = true;
932 mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 930 mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
933 } else { 931 } else {
934 if (i==0) mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 932 if (i==0) mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels));
935 else mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 933 else mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels));
936 934
937 } 935 }
938 } 936 }
939} 937}
940 938
941void KOMonthView::showDates(const QDate &start, const QDate &) 939void KOMonthView::showDates(const QDate &start, const QDate &)
942{ 940{
943 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 941 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
944 942
945 943
946 mStartDate = start; 944 mStartDate = start;
947 945
948 int startWeekDay = mWeekStartsMonday ? 1 : 7; 946 int startWeekDay = mWeekStartsMonday ? 1 : 7;
949 947
950 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 948 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
951 mStartDate = mStartDate.addDays( -1 ); 949 mStartDate = mStartDate.addDays( -1 );
952 } 950 }
953 951
954 bool primary = false; 952 bool primary = false;
955 uint i; 953 uint i;
956 for( i = 0; i < mCells.size(); ++i ) { 954 for( i = 0; i < mCells.size(); ++i ) {
957 QDate date = mStartDate.addDays( i ); 955 QDate date = mStartDate.addDays( i );
958 mCells[i]->setDate( date ); 956 mCells[i]->setDate( date );
959 957
960#ifndef KORG_NOPLUGINS 958#ifndef KORG_NOPLUGINS
961 // add holiday, if present 959 // add holiday, if present
962 QString hstring(KOCore::self()->holiday(date)); 960 QString hstring(KOCore::self()->holiday(date));
963 mCells[i]->setHoliday( hstring ); 961 mCells[i]->setHoliday( hstring );
964#endif 962#endif
965 963
966 } 964 }
967 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 965 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
968 for( i = 0; i < 6; ++i ) { 966 for( i = 0; i < 6; ++i ) {
969 int wno; 967 int wno;
970 // remember, according to ISO 8601, the first week of the year is the 968 // remember, according to ISO 8601, the first week of the year is the
971 // first week that contains a thursday. Thus we must subtract off 4, 969 // first week that contains a thursday. Thus we must subtract off 4,
972 // not just 1. 970 // not just 1.
973 int dayOfYear = date.dayOfYear(); 971 int dayOfYear = date.dayOfYear();
974 if (dayOfYear % 7 != 0) 972 if (dayOfYear % 7 != 0)
975 wno = dayOfYear / 7 + 1; 973 wno = dayOfYear / 7 + 1;
976 else 974 else
977 wno =dayOfYear / 7; 975 wno =dayOfYear / 7;
978 mWeekLabels[i]->setWeekNum( wno ); 976 mWeekLabels[i]->setWeekNum( wno );
979 date = date.addDays( 7 ); 977 date = date.addDays( 7 );
980 } 978 }
981 updateView(); 979 updateView();
982} 980}
983 981
984void KOMonthView::showEvents(QPtrList<Event>) 982void KOMonthView::showEvents(QPtrList<Event>)
985{ 983{
986 qDebug("KOMonthView::selectEvents is not implemented yet. "); 984 qDebug("KOMonthView::selectEvents is not implemented yet. ");
987} 985}
988 986
989void KOMonthView::changeEventDisplay(Event *, int) 987void KOMonthView::changeEventDisplay(Event *, int)
990{ 988{
991 // this should be re-written to be much more efficient, but this 989 // this should be re-written to be much more efficient, but this
992 // quick-and-dirty-hack gets the job done for right now. 990 // quick-and-dirty-hack gets the job done for right now.
993 updateView(); 991 updateView();
994} 992}
995 993
996void KOMonthView::updateView() 994void KOMonthView::updateView()
997{ 995{
998 996
999 if ( !updatePossible ) 997 if ( !updatePossible )
1000 return; 998 return;
1001 //QTime ti; 999 //QTime ti;
1002 //ti.start(); 1000 //ti.start();
1003#if 1 1001#if 1
1004 int i; 1002 int i;
1005 int timeSpan = mCells.size()-1; 1003 int timeSpan = mCells.size()-1;
1006 if ( KOPrefs::instance()->mMonthViewWeek ) 1004 if ( KOPrefs::instance()->mMonthViewWeek )
1007 timeSpan = 6; 1005 timeSpan = 6;
1008 for( i = 0; i < timeSpan + 1; ++i ) { 1006 for( i = 0; i < timeSpan + 1; ++i ) {
1009 mCells[i]->startUpdateCell(); 1007 mCells[i]->startUpdateCell();
1010 } 1008 }
1011 1009
1012 QPtrList<Event> events = calendar()->events(); 1010 QPtrList<Event> events = calendar()->events();
1013 Event *event; 1011 Event *event;
1014 QDateTime dt; 1012 QDateTime dt;
1015 bool ok; 1013 bool ok;
1016 QDate endDate = mStartDate.addDays( timeSpan ); 1014 QDate endDate = mStartDate.addDays( timeSpan );
1017 for( event = events.first(); event; event = events.next() ) { // for event 1015 for( event = events.first(); event; event = events.next() ) { // for event
1018 if ( event->doesRecur() ) { 1016 if ( event->doesRecur() ) {
1019 bool last; 1017 bool last;
1020 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1018 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1021 QDateTime incidenceEnd; 1019 QDateTime incidenceEnd;
1022 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1020 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1023 bool invalid = false; 1021 bool invalid = false;
1024 while( true ) { 1022 while( true ) {
1025 if ( incidenceStart.isValid() ) { 1023 if ( incidenceStart.isValid() ) {
1026 incidenceEnd = incidenceStart.addDays( eventlen ); 1024 incidenceEnd = incidenceStart.addDays( eventlen );
1027 int st = incidenceStart.date().daysTo( endDate ); 1025 int st = incidenceStart.date().daysTo( endDate );
1028 if ( st >= 0 ) { // start before timeend 1026 if ( st >= 0 ) { // start before timeend
1029 int end = mStartDate.daysTo( incidenceEnd.date() ); 1027 int end = mStartDate.daysTo( incidenceEnd.date() );
1030 if ( end >= 0 ) { // end after timestart --- got one! 1028 if ( end >= 0 ) { // end after timestart --- got one!
1031 //normalize 1029 //normalize
1032 st = timeSpan - st; 1030 st = timeSpan - st;
1033 if ( st < 0 ) st = 0; 1031 if ( st < 0 ) st = 0;
1034 if ( end > timeSpan ) end = timeSpan; 1032 if ( end > timeSpan ) end = timeSpan;
1035 int iii; 1033 int iii;
1036 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1034 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1037 for ( iii = st;iii<= end;++iii) 1035 for ( iii = st;iii<= end;++iii)
1038 mCells[iii]->insertEvent( event ); 1036 mCells[iii]->insertEvent( event );
1039 } 1037 }
1040 } 1038 }
1041 } else { 1039 } else {
1042 if ( invalid ) 1040 if ( invalid )
1043 break; 1041 break;
1044 invalid = true; 1042 invalid = true;
1045 //qDebug("invalid %s", event->summary().latin1()); 1043 //qDebug("invalid %s", event->summary().latin1());
1046 incidenceStart = QDateTime( mStartDate ); 1044 incidenceStart = QDateTime( mStartDate );
1047 } 1045 }
1048 if ( last ) 1046 if ( last )
1049 break; 1047 break;
1050 bool ok; 1048 bool ok;
1051 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1049 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1052 if ( ! ok ) 1050 if ( ! ok )
1053 break; 1051 break;
1054 if ( incidenceStart.date() > endDate ) 1052 if ( incidenceStart.date() > endDate )
1055 break; 1053 break;
1056 } 1054 }
1057 } else { // no recur 1055 } else { // no recur
1058 int st = event->dtStart().date().daysTo( endDate ); 1056 int st = event->dtStart().date().daysTo( endDate );
1059 if ( st >= 0 ) { // start before timeend 1057 if ( st >= 0 ) { // start before timeend
1060 int end = mStartDate.daysTo( event->dtEnd().date() ); 1058 int end = mStartDate.daysTo( event->dtEnd().date() );
1061 if ( end >= 0 ) { // end after timestart --- got one! 1059 if ( end >= 0 ) { // end after timestart --- got one!
1062 //normalize 1060 //normalize
1063 st = timeSpan - st; 1061 st = timeSpan - st;
1064 if ( st < 0 ) st = 0; 1062 if ( st < 0 ) st = 0;
1065 if ( end > timeSpan ) end = timeSpan; 1063 if ( end > timeSpan ) end = timeSpan;
1066 int iii; 1064 int iii;
1067 for ( iii = st;iii<= end;++iii) 1065 for ( iii = st;iii<= end;++iii)
1068 mCells[iii]->insertEvent( event ); 1066 mCells[iii]->insertEvent( event );
1069 } 1067 }
1070 } 1068 }
1071 } 1069 }
1072 } 1070 }
1073 // insert due todos 1071 // insert due todos
1074 QPtrList<Todo> todos = calendar()->todos( ); 1072 QPtrList<Todo> todos = calendar()->todos( );
1075 Todo *todo; 1073 Todo *todo;
1076 for(todo = todos.first(); todo; todo = todos.next()) { 1074 for(todo = todos.first(); todo; todo = todos.next()) {
1077 //insertTodo( todo ); 1075 //insertTodo( todo );
1078 if ( todo->hasDueDate() ) { 1076 if ( todo->hasDueDate() ) {
1079 int day = mStartDate.daysTo( todo->dtDue().date() ); 1077 int day = mStartDate.daysTo( todo->dtDue().date() );
1080 if ( day >= 0 && day < timeSpan + 1) { 1078 if ( day >= 0 && day < timeSpan + 1) {
1081 mCells[day]->insertTodo( todo ); 1079 mCells[day]->insertTodo( todo );
1082 } 1080 }
1083 } 1081 }
1084 } 1082 }
1085 1083
1086 for( i = 0; i < timeSpan+1; ++i ) { 1084 for( i = 0; i < timeSpan+1; ++i ) {
1087 mCells[i]->finishUpdateCell(); 1085 mCells[i]->finishUpdateCell();
1088 } 1086 }
1089 processSelectionChange(); 1087 processSelectionChange();
1090 mCells[0]->setFocus(); 1088 mCells[0]->setFocus();
1091 1089
1092 1090
1093#else 1091#else
1094 // old code 1092 // old code
1095 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); 1093 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ");
1096 int i; 1094 int i;
1097 for( i = 0; i < mCells.count(); ++i ) { 1095 for( i = 0; i < mCells.count(); ++i ) {
1098 mCells[i]->updateCell(); 1096 mCells[i]->updateCell();
1099 } 1097 }
1100 1098
1101 //qDebug("KOMonthView::updateView() "); 1099 //qDebug("KOMonthView::updateView() ");
1102 processSelectionChange(); 1100 processSelectionChange();
1103 // qDebug("---------------------------------------------------------------------+ "); 1101 // qDebug("---------------------------------------------------------------------+ ");
1104 mCells[0]->setFocus(); 1102 mCells[0]->setFocus();
1105#endif 1103#endif
1106 1104
1107 //qDebug("update time %d ", ti.elapsed()); 1105 //qDebug("update time %d ", ti.elapsed());
1108} 1106}
1109 1107
1110void KOMonthView::resizeEvent(QResizeEvent * e) 1108void KOMonthView::resizeEvent(QResizeEvent * e)
1111{ 1109{
1112 computeLayout(); 1110 computeLayout();
1113 mCells[0]->setFocus(); 1111 mCells[0]->setFocus();
1114} 1112}
1115void KOMonthView::computeLayoutWeek() 1113void KOMonthView::computeLayoutWeek()
1116{ 1114{
1117 1115
1118 int daysToShow; 1116 int daysToShow;
1119 bool combinedSatSun = false; 1117 bool combinedSatSun = false;
1120 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1118 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1121 daysToShow = 6; 1119 daysToShow = 6;
1122 combinedSatSun = true; 1120 combinedSatSun = true;
1123 } 1121 }
1124 int tWid = topLevelWidget()->size().width(); 1122 int tWid = topLevelWidget()->size().width();
1125 int tHei = topLevelWidget()->size().height(); 1123 int tHei = topLevelWidget()->size().height();
1126 1124
1127 int wid = size().width();//e 1125 int wid = size().width();//e
1128 int hei = size().height()-1; 1126 int hei = size().height()-1;
1129 1127
1130 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1128 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1131 return; 1129 return;
1132 1130
1133 if ( wid < hei ) 1131 if ( wid < hei )
1134 daysToShow = 2; 1132 daysToShow = 2;
1135 else 1133 else
1136 daysToShow = 3; 1134 daysToShow = 3;
1137 mShowSatSunComp = true; 1135 mShowSatSunComp = true;
1138 combinedSatSun = true; 1136 combinedSatSun = true;
1139 1137
1140 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1138 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1141 QFontMetrics fm ( mWeekLabels[0]->font() ); 1139 QFontMetrics fm ( mWeekLabels[0]->font() );
1142 int weeklabelwid = fm.width( "888" ); 1140 int weeklabelwid = fm.width( "888" );
1143 wid -= weeklabelwid; 1141 wid -= weeklabelwid;
1144 1142
1145 int colWid = wid / daysToShow; 1143 int colWid = wid / daysToShow;
1146 int lastCol = wid - ( colWid*6 ); 1144 int lastCol = wid - ( colWid*6 );
1147 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1145 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1148 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1146 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1149 int colModulo = wid % daysToShow; 1147 int colModulo = wid % daysToShow;
1150 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1148 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1151 //qDebug("rowmod %d ", rowModulo); 1149 //qDebug("rowmod %d ", rowModulo);
1152 int i; 1150 int i;
1153 int x,y,w,h; 1151 int x,y,w,h;
1154 x= 0; 1152 x= 0;
1155 y= 0; 1153 y= 0;
1156 w = colWid; 1154 w = colWid;
1157 h = dayLabelHei ; 1155 h = dayLabelHei ;
1158 for ( i = 0; i < 7; i++) { 1156 for ( i = 0; i < 7; i++) {
1159 if ( i && !( i % daysToShow) && i < 6) { 1157 if ( i && !( i % daysToShow) && i < 6) {
1160 y += hei/(5-daysToShow); 1158 y += hei/(5-daysToShow);
1161 x = 0; 1159 x = 0;
1160 w = colWid;
1162 } 1161 }
1163 if ( i == daysToShow-colModulo ) 1162 if ( i == daysToShow-colModulo )
1164 ++w; 1163 ++w;
1165 if ( i >= 5 ) { 1164 if ( i >= 5 ) {
1166 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1165 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2+1,h);
1167 x -= w/2 ; 1166 x -= w/2 ;
1168 } 1167 }
1169 else 1168 else
1170 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1169 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1171 x += w; 1170 x += w;
1172 } 1171 }
1173 x= 0; 1172 x= 0;
1174 y= dayLabelHei; 1173 y= dayLabelHei;
1175 w = colWid; 1174 w = colWid;
1176 h = cellHei; 1175 h = cellHei;
1177 for ( i = 0; i < mCells.count(); ++i) { 1176 for ( i = 0; i < mCells.count(); ++i) {
1178 if ( i > 6 ) { 1177 if ( i > 6 ) {
1179 mCells[i]->hide(); 1178 mCells[i]->hide();
1180 continue; 1179 continue;
1181 } 1180 }
1182 1181
1183 w = colWid; 1182 w = colWid;
1184 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1183 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1185 ++w; 1184 ++w;
1186 } 1185 }
1187 if ( i == (daysToShow-1-rowModulo)*7) 1186 if ( i == (daysToShow-1-rowModulo)*7)
1188 ++h; 1187 ++h;
1189 1188
1190 if ( i >= 5 ) { 1189 if ( i >= 5 ) {
1191 if ( i ==5 ) { 1190 if ( i ==5 ) {
1192 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); 1191 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1193 x -= w ;y += h/2; 1192 x -= w ;y += h/2;
1194 } else { 1193 } else {
1195 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1194 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1196 y -= h/2; 1195 y -= h/2;
1197 } 1196 }
1198 } else 1197 } else
1199 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1198 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1200 1199
1201 1200
1202 x += w; 1201 x += w;
1203 if ( x + w/2 > wid ) { 1202 if ( x + w/2 > wid ) {
1204 x = 0; 1203 x = 0;
1205 y += h+dayLabelHei ; 1204 y += h+dayLabelHei ;
1206 } 1205 }
1207 } 1206 }
1208 y= dayLabelHei; 1207 y= dayLabelHei;
1209 h = cellHei ; 1208 h = cellHei ;
1210 mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1209 mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1211 for ( i = 1; i < 6; i++) { 1210 for ( i = 1; i < 6; i++) {
1212 mWeekLabels[i]->hide(); 1211 mWeekLabels[i]->hide();
1213 } 1212 }
1214 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1213 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1215 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1214 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1216 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1215 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1217 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1216 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ;
1218 updateDayLabels(); 1217 updateDayLabels();
1219 bool forceUpdate = !updatePossible; 1218 bool forceUpdate = !updatePossible;
1220 updatePossible = true; 1219 updatePossible = true;
1221 mWeekLabels[mNumWeeks]->setText( i18n("M")); 1220 mWeekLabels[mNumWeeks]->setText( i18n("M"));
1222 if ( forceUpdate ) 1221 if ( forceUpdate )
1223 updateView(); 1222 updateView();
1224} 1223}
1225void KOMonthView::computeLayout() 1224void KOMonthView::computeLayout()
1226{ 1225{
1227 // select the appropriate heading string size. E.g. "Wednesday" or "Wed". 1226 // select the appropriate heading string size. E.g. "Wednesday" or "Wed".
1228 // note this only changes the text if the requested size crosses the 1227 // note this only changes the text if the requested size crosses the
1229 // threshold between big enough to support the full name and not big 1228 // threshold between big enough to support the full name and not big
1230 // enough. 1229 // enough.
1231 if ( mShowWeekView ){ 1230 if ( mShowWeekView ){
1232 computeLayoutWeek(); 1231 computeLayoutWeek();
1233 return; 1232 return;
1234 } 1233 }
1235 int daysToShow = 7; 1234 int daysToShow = 7;
1236 bool combinedSatSun = false; 1235 bool combinedSatSun = false;
1237 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1236 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1238 daysToShow = 6; 1237 daysToShow = 6;
1239 combinedSatSun = true; 1238 combinedSatSun = true;
1240 } 1239 }
1241 int tWid = topLevelWidget()->size().width(); 1240 int tWid = topLevelWidget()->size().width();
1242 int tHei = topLevelWidget()->size().height(); 1241 int tHei = topLevelWidget()->size().height();
1243 1242
1244 int wid = size().width();//e 1243 int wid = size().width();//e
1245 int hei = size().height()-1; 1244 int hei = size().height()-1;
1246 1245
1247 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1246 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1248 return; 1247 return;
1249 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1248 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1250 QFontMetrics fm ( mWeekLabels[0]->font() ); 1249 QFontMetrics fm ( mWeekLabels[0]->font() );
1251 int weeklabelwid = fm.width( "888" ); 1250 int weeklabelwid = fm.width( "888" );
1252 wid -= weeklabelwid; 1251 wid -= weeklabelwid;
1253 1252
1254 int colWid = wid / daysToShow; 1253 int colWid = wid / daysToShow;
1255 int lastCol = wid - ( colWid*6 ); 1254 int lastCol = wid - ( colWid*6 );
1256 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1255 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1257 int cellHei = (hei - dayLabelHei) /6; 1256 int cellHei = (hei - dayLabelHei) /6;
1258 int colModulo = wid % daysToShow; 1257 int colModulo = wid % daysToShow;
1259 int rowModulo = (hei- dayLabelHei) % 6; 1258 int rowModulo = (hei- dayLabelHei) % 6;
1260 //qDebug("rowmod %d ", rowModulo); 1259 //qDebug("rowmod %d ", rowModulo);
1261 int i; 1260 int i;
1262 int x,y,w,h; 1261 int x,y,w,h;
1263 x= 0; 1262 x= 0;
1264 y= 0; 1263 y= 0;
1265 w = colWid; 1264 w = colWid;
1266 h = dayLabelHei ; 1265 h = dayLabelHei ;
1267 for ( i = 0; i < 7; i++) { 1266 for ( i = 0; i < 7; i++) {
1268 if ( i == daysToShow-colModulo ) 1267 if ( i == daysToShow-colModulo )
1269 ++w; 1268 ++w;
1270 if ( combinedSatSun ) { 1269 if ( combinedSatSun ) {
1271 if ( i >= daysToShow-1 ) { 1270 if ( i >= daysToShow-1 ) {
1272 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1271 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
1273 x -= w/2 ; 1272 x -= w/2 ;
1274 } 1273 }
1275 else 1274 else
1276 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1275 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1277 } else 1276 } else
1278 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1277 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1279 x += w; 1278 x += w;
1280 } 1279 }
1281 x= 0; 1280 x= 0;
1282 y= dayLabelHei; 1281 y= dayLabelHei;
1283 w = colWid; 1282 w = colWid;
1284 h = cellHei ; 1283 h = cellHei ;
1285 for ( i = 0; i < mCells.count(); ++i) { 1284 for ( i = 0; i < mCells.count(); ++i) {
1286 mCells[i]->show(); 1285 mCells[i]->show();
1287 w = colWid; 1286 w = colWid;
1288 if ( ((i) % 7) >= 7-colModulo ) { 1287 if ( ((i) % 7) >= 7-colModulo ) {
1289 ++w; 1288 ++w;
1290 } 1289 }
1291 if ( i == (6-rowModulo)*7) 1290 if ( i == (6-rowModulo)*7)
1292 ++h; 1291 ++h;
1293 if ( combinedSatSun ) { 1292 if ( combinedSatSun ) {
1294 if ( (i)%7 >= daysToShow-1 ) { 1293 if ( (i)%7 >= daysToShow-1 ) {
1295 if ( (i)%7 == daysToShow-1 ) { 1294 if ( (i)%7 == daysToShow-1 ) {
1296 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); 1295 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1297 x -= w ;y += h/2; 1296 x -= w ;y += h/2;
1298 } else { 1297 } else {
1299 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1298 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1300 y -= h/2; 1299 y -= h/2;
1301 } 1300 }
1302 } else 1301 } else
1303 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1302 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1304 1303
1305 } 1304 }
1306 else 1305 else
1307 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1306 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1308 x += w; 1307 x += w;
1309 if ( x + w/2 > wid ) { 1308 if ( x + w/2 > wid ) {
1310 x = 0; 1309 x = 0;
1311 y += h; 1310 y += h;
1312 } 1311 }
1313 } 1312 }
1314 y= dayLabelHei; 1313 y= dayLabelHei;
1315 h = cellHei ; 1314 h = cellHei ;
1316 for ( i = 0; i < 6; i++) { 1315 for ( i = 0; i < 6; i++) {
1317 mWeekLabels[i]->show(); 1316 mWeekLabels[i]->show();
1318 if ( i == (6-rowModulo)) 1317 if ( i == (6-rowModulo))
1319 ++h; 1318 ++h;
1320 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1319 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1321 y += h; 1320 y += h;
1322 } 1321 }
1323 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1322 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1324 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1323 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1325 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1324 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1326 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1325 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ;
1327 updateDayLabels(); 1326 updateDayLabels();
1328 bool forceUpdate = !updatePossible; 1327 bool forceUpdate = !updatePossible;
1329 updatePossible = true; 1328 updatePossible = true;
1330 mWeekLabels[mNumWeeks]->setText( i18n("W")); 1329 mWeekLabels[mNumWeeks]->setText( i18n("W"));
1331 if ( forceUpdate ) 1330 if ( forceUpdate )
1332 updateView(); 1331 updateView();
1333} 1332}
1334 1333
1335void KOMonthView::showContextMenu( Incidence *incidence ) 1334void KOMonthView::showContextMenu( Incidence *incidence )
1336{ 1335{
1337 mContextMenu->showIncidencePopup(incidence); 1336 mContextMenu->showIncidencePopup(incidence);
1338 /* 1337 /*
1339 if( incidence && incidence->type() == "Event" ) { 1338 if( incidence && incidence->type() == "Event" ) {
1340 Event *event = static_cast<Event *>(incidence); 1339 Event *event = static_cast<Event *>(incidence);
1341 mContextMenu->showEventPopup(event); 1340 mContextMenu->showEventPopup(event);
1342 } else { 1341 } else {
1343 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; 1342 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl;
1344 } 1343 }
1345 */ 1344 */
1346} 1345}
1347MonthViewCell * KOMonthView::selectedCell( ) 1346MonthViewCell * KOMonthView::selectedCell( )
1348{ 1347{
1349 return mSelectedCell; 1348 return mSelectedCell;
1350} 1349}
1351void KOMonthView::setSelectedCell( MonthViewCell *cell ) 1350void KOMonthView::setSelectedCell( MonthViewCell *cell )
1352{ 1351{
1353 // qDebug("KOMonthView::setSelectedCell "); 1352 // qDebug("KOMonthView::setSelectedCell ");
1354 if ( mSelectedCell && mSelectedCell != cell ) { 1353 if ( mSelectedCell && mSelectedCell != cell ) {
1355 MonthViewCell * mvc = mSelectedCell; 1354 MonthViewCell * mvc = mSelectedCell;
1356 mSelectedCell = cell; 1355 mSelectedCell = cell;
1357 mvc->deselect(); 1356 mvc->deselect();
1358 } else 1357 } else
1359 mSelectedCell = cell; 1358 mSelectedCell = cell;
1360 // if ( mSelectedCell ) 1359 // if ( mSelectedCell )
1361 // mSelectedCell->select(); 1360 // mSelectedCell->select();
1362 if ( !mSelectedCell ) 1361 if ( !mSelectedCell )
1363 emit incidenceSelected( 0 ); 1362 emit incidenceSelected( 0 );
1364 else 1363 else
1365 emit incidenceSelected( mSelectedCell->selectedIncidence() ); 1364 emit incidenceSelected( mSelectedCell->selectedIncidence() );
1366} 1365}
1367 1366
1368void KOMonthView::processSelectionChange() 1367void KOMonthView::processSelectionChange()
1369{ 1368{
1370 QPtrList<Incidence> incidences = selectedIncidences(); 1369 QPtrList<Incidence> incidences = selectedIncidences();
1371 if (incidences.count() > 0) { 1370 if (incidences.count() > 0) {
1372 emit incidenceSelected( incidences.first() ); 1371 emit incidenceSelected( incidences.first() );
1373 } else { 1372 } else {
1374 emit incidenceSelected( 0 ); 1373 emit incidenceSelected( 0 );
1375 } 1374 }
1376} 1375}
1377 1376
1378void KOMonthView::clearSelection() 1377void KOMonthView::clearSelection()
1379{ 1378{
1380 if ( mSelectedCell ) { 1379 if ( mSelectedCell ) {
1381 mSelectedCell->deselect(); 1380 mSelectedCell->deselect();
1382 mSelectedCell = 0; 1381 mSelectedCell = 0;
1383 } 1382 }
1384} 1383}
1385void KOMonthView::keyPressEvent ( QKeyEvent * e ) 1384void KOMonthView::keyPressEvent ( QKeyEvent * e )
1386{ 1385{
1387 //qDebug("KOMonthView::keyPressEvent "); 1386 //qDebug("KOMonthView::keyPressEvent ");
1388 switch(e->key()) { 1387 switch(e->key()) {
1389 case Key_Up: 1388 case Key_Up:
1390 { 1389 {
1391 emit prevMonth(); 1390 emit prevMonth();
1392 mCells[0]->setFocus(); 1391 mCells[0]->setFocus();
1393 } 1392 }
1394 e->accept(); 1393 e->accept();
1395 break; 1394 break;
1396 case Key_Down: 1395 case Key_Down:
1397 { 1396 {
1398 emit nextMonth(); 1397 emit nextMonth();
1399 mCells[0]->setFocus(); 1398 mCells[0]->setFocus();
1400 1399
1401 } 1400 }
1402 e->accept(); 1401 e->accept();
1403 break; 1402 break;
1404 default: 1403 default:
1405 e->ignore(); 1404 e->ignore();
1406 break; 1405 break;
1407 } 1406 }
1408} 1407}