summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp44
-rw-r--r--korganizer/koagendaview.h3
-rw-r--r--korganizer/koviewmanager.cpp9
3 files changed, 47 insertions, 9 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 8e9add3..d43712f 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -516,375 +516,405 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
516 SIGNAL(showIncidenceSignal(Incidence *))); 516 SIGNAL(showIncidenceSignal(Incidence *)));
517 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 517 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
518 SIGNAL(showIncidenceSignal(Incidence *))); 518 SIGNAL(showIncidenceSignal(Incidence *)));
519 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 519 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
520 SIGNAL(deleteIncidenceSignal(Incidence *))); 520 SIGNAL(deleteIncidenceSignal(Incidence *)));
521 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 521 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
522 SIGNAL(deleteIncidenceSignal(Incidence *))); 522 SIGNAL(deleteIncidenceSignal(Incidence *)));
523 523
524 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 524 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
525 SLOT(updateEventDates(KOAgendaItem *, int ))); 525 SLOT(updateEventDates(KOAgendaItem *, int )));
526 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 526 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
527 SLOT(updateEventDates(KOAgendaItem *, int))); 527 SLOT(updateEventDates(KOAgendaItem *, int)));
528 528
529 // event indicator update 529 // event indicator update
530 connect(mAgenda,SIGNAL(lowerYChanged(int)), 530 connect(mAgenda,SIGNAL(lowerYChanged(int)),
531 SLOT(updateEventIndicatorTop(int))); 531 SLOT(updateEventIndicatorTop(int)));
532 connect(mAgenda,SIGNAL(upperYChanged(int)), 532 connect(mAgenda,SIGNAL(upperYChanged(int)),
533 SLOT(updateEventIndicatorBottom(int))); 533 SLOT(updateEventIndicatorBottom(int)));
534 // drag signals 534 // drag signals
535 /* 535 /*
536 connect(mAgenda,SIGNAL(startDragSignal(Event *)), 536 connect(mAgenda,SIGNAL(startDragSignal(Event *)),
537 SLOT(startDrag(Event *))); 537 SLOT(startDrag(Event *)));
538 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)), 538 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)),
539 SLOT(startDrag(Event *))); 539 SLOT(startDrag(Event *)));
540 */ 540 */
541 // synchronize selections 541 // synchronize selections
542 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 542 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
543 mAllDayAgenda, SLOT( deselectItem() ) ); 543 mAllDayAgenda, SLOT( deselectItem() ) );
544 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 544 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
545 mAgenda, SLOT( deselectItem() ) ); 545 mAgenda, SLOT( deselectItem() ) );
546 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 546 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
547 SIGNAL( incidenceSelected( Incidence * ) ) ); 547 SIGNAL( incidenceSelected( Incidence * ) ) );
548 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 548 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
549 SIGNAL( incidenceSelected( Incidence * ) ) ); 549 SIGNAL( incidenceSelected( Incidence * ) ) );
550 connect( mAgenda, SIGNAL( resizedSignal() ), 550 connect( mAgenda, SIGNAL( resizedSignal() ),
551 SLOT( updateConfig( ) ) ); 551 SLOT( updateConfig( ) ) );
552 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ), 552 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ),
553 SLOT( addToCalSlot(Incidence *, Incidence * ) ) ); 553 SLOT( addToCalSlot(Incidence *, Incidence * ) ) );
554 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ), 554 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ),
555 SLOT( addToCalSlot(Incidence * , Incidence *) ) ); 555 SLOT( addToCalSlot(Incidence * , Incidence *) ) );
556 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 556 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
557 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 557 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
558 558
559 559
560} 560}
561 561
562void KOAgendaView::toggleAllDay() 562void KOAgendaView::toggleAllDay()
563{ 563{
564 if ( mSplitterAgenda->firstHandle() ) 564 if ( mSplitterAgenda->firstHandle() )
565 mSplitterAgenda->firstHandle()->toggle(); 565 mSplitterAgenda->firstHandle()->toggle();
566} 566}
567void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld ) 567void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld )
568{ 568{
569 calendar()->addIncidence( inc ); 569 calendar()->addIncidence( inc );
570 570
571 if ( incOld ) { 571 if ( incOld ) {
572 if ( incOld->type() == "Todo" ) 572 if ( incOld->type() == "Todo" )
573 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED ); 573 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED );
574 else 574 else
575 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED); 575 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED);
576 } 576 }
577 577
578} 578}
579 579
580KOAgendaView::~KOAgendaView() 580KOAgendaView::~KOAgendaView()
581{ 581{
582 delete mAgendaPopup; 582 delete mAgendaPopup;
583 delete mAllDayAgendaPopup; 583 delete mAllDayAgendaPopup;
584 delete KOAgendaItem::paintPix(); 584 delete KOAgendaItem::paintPix();
585 delete KOAgendaItem::paintPixSel(); 585 delete KOAgendaItem::paintPixSel();
586} 586}
587void KOAgendaView::resizeEvent( QResizeEvent* e ) 587void KOAgendaView::resizeEvent( QResizeEvent* e )
588{ 588{
589 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width()); 589 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width());
590 bool uc = false; 590 bool uc = false;
591 int ow = e->oldSize().width(); 591 int ow = e->oldSize().width();
592 int oh = e->oldSize().height(); 592 int oh = e->oldSize().height();
593 int w = e->size().width(); 593 int w = e->size().width();
594 int h = e->size().height(); 594 int h = e->size().height();
595 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) { 595 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) {
596 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda ) 596 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda )
597 uc = true; 597 uc = true;
598 //qDebug("view changed %d %d %d %d ", ow, oh , w , h); 598 //qDebug("view changed %d %d %d %d ", ow, oh , w , h);
599 } 599 }
600 mUpcomingWidth = e->size().width() ; 600 mUpcomingWidth = e->size().width() ;
601 if ( mBlockUpdating || uc ) { 601 if ( mBlockUpdating || uc ) {
602 mBlockUpdating = false; 602 mBlockUpdating = false;
603 //mAgenda->setMinimumSize(800 , 600 ); 603 //mAgenda->setMinimumSize(800 , 600 );
604 //qDebug("mAgenda->resize+++++++++++++++ "); 604 //qDebug("mAgenda->resize+++++++++++++++ ");
605 updateConfig(); 605 updateConfig();
606 //qDebug("KOAgendaView::Updating now possible "); 606 //qDebug("KOAgendaView::Updating now possible ");
607 } else 607 } else
608 createDayLabels(); 608 createDayLabels();
609 //qDebug("resizeEvent end "); 609 //qDebug("resizeEvent end ");
610 610
611} 611}
612void KOAgendaView::slotDaylabelClicked()
613{
614 QString cap = ((QPushButton*) sender() )->caption();
615
616 QDate firstDate = mSelectedDates.first();
617 if ( cap == "0" )
618 emit showDateView( 6, firstDate );
619 else if ( cap != "last" ) {
620 if ( mSelectedDates.count() == 1)
621 emit showDateView( 9, firstDate.addDays( cap.toInt()-1 ) );
622 else
623 emit showDateView( 3, firstDate.addDays( cap.toInt()-1 ) );
624 }
625 else
626 showDateView( 10, firstDate.addDays(1 ) );
627}
612void KOAgendaView::createDayLabels() 628void KOAgendaView::createDayLabels()
613{ 629{
614 630
615 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 631 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
616 // qDebug(" KOAgendaView::createDayLabels() blocked "); 632 // qDebug(" KOAgendaView::createDayLabels() blocked ");
617 return; 633 return;
618 634
619 } 635 }
620 int newHight; 636 int newHight;
621 637
622 // ### Before deleting and recreating we could check if mSelectedDates changed... 638 // ### Before deleting and recreating we could check if mSelectedDates changed...
623 // It would remove some flickering and gain speed (since this is called by 639 // It would remove some flickering and gain speed (since this is called by
624 // each updateView() call) 640 // each updateView() call)
625 641
626 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2; 642 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2;
627 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 643 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
628 if ( maxWid < 0 ) 644 if ( maxWid < 0 )
629 maxWid = 20; 645 maxWid = 20;
630 646
631 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 647 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
632 QFontMetrics fm ( dlf ); 648 QFontMetrics fm ( dlf );
633 int selCount = mSelectedDates.count(); 649 int selCount = mSelectedDates.count();
634 QString dayTest = "Mon 20"; 650 QString dayTest = "Mon 20";
635 int wid = fm.width( dayTest ); 651 int wid = fm.width( dayTest );
636 maxWid -= ( selCount * 3 ); 652 maxWid -= ( selCount * 3 );
637 if ( maxWid < 0 ) 653 if ( maxWid < 0 )
638 maxWid = 20; 654 maxWid = 20;
639 int needWid = wid * selCount; 655 int needWid = wid * selCount;
640 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 656 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
641 //if ( needWid > maxWid ) 657 //if ( needWid > maxWid )
642 // qDebug("DAYLABELS TOOOOOOO BIG "); 658 // qDebug("DAYLABELS TOOOOOOO BIG ");
643 while ( needWid > maxWid ) { 659 while ( needWid > maxWid ) {
644 dayTest = dayTest.left( dayTest.length() - 1 ); 660 dayTest = dayTest.left( dayTest.length() - 1 );
645 wid = fm.width( dayTest ); 661 wid = fm.width( dayTest );
646 needWid = wid * selCount; 662 needWid = wid * selCount;
647 } 663 }
648 int maxLen = dayTest.length(); 664 int maxLen = dayTest.length();
649 int fontPoint = dlf.pointSize(); 665 int fontPoint = dlf.pointSize();
650 if ( maxLen < 2 ) { 666 if ( maxLen < 2 ) {
651 int fontPoint = dlf.pointSize(); 667 int fontPoint = dlf.pointSize();
652 while ( fontPoint > 4 ) { 668 while ( fontPoint > 4 ) {
653 --fontPoint; 669 --fontPoint;
654 dlf.setPointSize( fontPoint ); 670 dlf.setPointSize( fontPoint );
655 QFontMetrics f( dlf ); 671 QFontMetrics f( dlf );
656 wid = f.width( "20" ); 672 wid = f.width( "20" );
657 needWid = wid * selCount; 673 needWid = wid * selCount;
658 if ( needWid < maxWid ) 674 if ( needWid < maxWid )
659 break; 675 break;
660 } 676 }
661 maxLen = 2; 677 maxLen = 2;
662 } 678 }
663 //qDebug("Max len %d ", dayTest.length() ); 679 //qDebug("Max len %d ", dayTest.length() );
664 680
665 QFontMetrics tempF( dlf ); 681 QFontMetrics tempF( dlf );
666 newHight = tempF.height(); 682 newHight = tempF.height();
667 mDayLabels->setFont( dlf ); 683 mDayLabels->setFont( dlf );
668 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 684 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
669 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 685 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
670 //mLayoutDayLabels->addSpacing( 2 ); 686 //mLayoutDayLabels->addSpacing( 2 );
671 // QFont lFont = dlf; 687 // QFont lFont = dlf;
672 bool appendLabels = false; 688 bool appendLabels = false;
673 QLabel *dayLabel; 689 QPushButton *dayLabel;
674 dayLabel = mDayLabelsList.first(); 690 dayLabel = mDayLabelsList.first();
675 if ( !dayLabel ) { 691 if ( !dayLabel ) {
676 appendLabels = true; 692 appendLabels = true;
677 dayLabel = new QLabel(mDayLabels); 693 dayLabel = new QPushButton(mDayLabels);
694 dayLabel->setFlat( true );
695 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
696 dayLabel->setFocusPolicy(NoFocus);
678 mDayLabelsList.append( dayLabel ); 697 mDayLabelsList.append( dayLabel );
679 mLayoutDayLabels->addWidget(dayLabel); 698 mLayoutDayLabels->addWidget(dayLabel);
680 } 699 }
681 dayLabel->setFixedWidth( mTimeLabels->width()+2 ); 700 dayLabel->setFixedWidth( mTimeLabels->width()+2 );
682 dayLabel->setFont( dlf ); 701 dayLabel->setFont( dlf );
683 dayLabel->setAlignment(QLabel::AlignHCenter); 702 dayLabel->setCaption("0");
703 //dayLabel->setAlignment(QLabel::AlignHCenter);
684 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 704 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
685 dayLabel->show(); 705 dayLabel->show();
686 DateList::ConstIterator dit; 706 DateList::ConstIterator dit;
687 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 707 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
708 int counter = 0;
688 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 709 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
710 ++counter;
689 QDate date = *dit; 711 QDate date = *dit;
690 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 712 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
691 if ( ! appendLabels ) { 713 if ( ! appendLabels ) {
692 dayLabel = mDayLabelsList.next(); 714 dayLabel = mDayLabelsList.next();
693 if ( !dayLabel ) 715 if ( !dayLabel )
694 appendLabels = true; 716 appendLabels = true;
695 } 717 }
696 if ( appendLabels ) { 718 if ( appendLabels ) {
697 dayLabel = new QLabel(mDayLabels); 719 dayLabel = new QPushButton(mDayLabels);
720 dayLabel->setFlat( true );
721 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
722 dayLabel->setFocusPolicy(NoFocus);
698 mDayLabelsList.append( dayLabel ); 723 mDayLabelsList.append( dayLabel );
699 mLayoutDayLabels->addWidget(dayLabel); 724 mLayoutDayLabels->addWidget(dayLabel);
700 } 725 }
701 dayLabel->setMinimumWidth( 1 ); 726 dayLabel->setMinimumWidth( 1 );
702 dayLabel->setMaximumWidth( 2048 ); 727 dayLabel->setMaximumWidth( 2048 );
703 dayLabel->setFont( dlf ); 728 dayLabel->setFont( dlf );
704 dayLabel->show(); 729 dayLabel->show();
730 dayLabel->setCaption(QString::number( counter ));
705 QString str; 731 QString str;
706 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 732 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
707 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 733 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
708 switch ( maxLen ) { 734 switch ( maxLen ) {
709 case 2: 735 case 2:
710 str = QString::number( date.day() ); 736 str = QString::number( date.day() );
711 break; 737 break;
712 738
713 case 3: 739 case 3:
714 str = dayName.left( 1 ) +QString::number( date.day()); 740 str = dayName.left( 1 ) +QString::number( date.day());
715 741
716 break; 742 break;
717 case 4: 743 case 4:
718 str = dayName.left( 1 ) + " " +QString::number( date.day()); 744 str = dayName.left( 1 ) + " " +QString::number( date.day());
719 745
720 break; 746 break;
721 case 5: 747 case 5:
722 str = dayName.left( 2 ) + " " +QString::number( date.day()); 748 str = dayName.left( 2 ) + " " +QString::number( date.day());
723 749
724 break; 750 break;
725 case 6: 751 case 6:
726 str = dayName.left( 3 ) + " " +QString::number( date.day()); 752 str = dayName.left( 3 ) + " " +QString::number( date.day());
727 break; 753 break;
728 754
729 default: 755 default:
730 break; 756 break;
731 } 757 }
732 if ( oneday ) { 758 if ( oneday ) {
733 QString addString; 759 QString addString;
734 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() ) 760 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() )
735 addString = i18n("Today"); 761 addString = i18n("Today");
736 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) 762 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) )
737 addString = i18n("Tomorrow"); 763 addString = i18n("Tomorrow");
738 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 764 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
739 addString = i18n("Yesterday"); 765 addString = i18n("Yesterday");
740 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 766 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
741 addString = i18n("Day before yesterday"); 767 addString = i18n("Day before yesterday");
742 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 768 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
743 addString = i18n("Day after tomorrow"); 769 addString = i18n("Day after tomorrow");
744 if ( !addString.isEmpty() ) { 770 if ( !addString.isEmpty() ) {
745 str = addString+", " + str; 771 str = addString+", " + str;
746 } 772 }
747 } 773 }
748 dayLabel->setText(str); 774 dayLabel->setText(str);
749 dayLabel->setAlignment(QLabel::AlignHCenter); 775 //dayLabel->setAlignment(QLabel::AlignHCenter);
750 if (date == QDate::currentDate()) { 776 if (date == QDate::currentDate()) {
751 QFont bFont = dlf; 777 QFont bFont = dlf;
752 bFont.setBold( true ); 778 bFont.setBold( true );
753 dayLabel->setFont(bFont); 779 dayLabel->setFont(bFont);
754 } 780 }
755 //dayLayout->addWidget(dayLabel); 781 //dayLayout->addWidget(dayLabel);
756 782
757#ifndef KORG_NOPLUGINS 783#ifndef KORG_NOPLUGINS
758 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 784 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
759 CalendarDecoration *it; 785 CalendarDecoration *it;
760 for(it = cds.first(); it; it = cds.next()) { 786 for(it = cds.first(); it; it = cds.next()) {
761 QString text = it->shortText( date ); 787 QString text = it->shortText( date );
762 if ( !text.isEmpty() ) { 788 if ( !text.isEmpty() ) {
763 QLabel *label = new QLabel(text,mDayLabels); 789 QLabel *label = new QLabel(text,mDayLabels);
764 label->setAlignment(AlignCenter); 790 label->setAlignment(AlignCenter);
765 dayLayout->addWidget(label); 791 dayLayout->addWidget(label);
766 } 792 }
767 } 793 }
768 794
769 for(it = cds.first(); it; it = cds.next()) { 795 for(it = cds.first(); it; it = cds.next()) {
770 QWidget *wid = it->smallWidget(mDayLabels,date); 796 QWidget *wid = it->smallWidget(mDayLabels,date);
771 if ( wid ) { 797 if ( wid ) {
772 // wid->setHeight(20); 798 // wid->setHeight(20);
773 dayLayout->addWidget(wid); 799 dayLayout->addWidget(wid);
774 } 800 }
775 } 801 }
776#endif 802#endif
777 } 803 }
778 if ( ! appendLabels ) { 804 if ( ! appendLabels ) {
779 dayLabel = mDayLabelsList.next(); 805 dayLabel = mDayLabelsList.next();
780 if ( !dayLabel ) 806 if ( !dayLabel )
781 appendLabels = true; 807 appendLabels = true;
782 } 808 }
783 if ( appendLabels ) { 809 if ( appendLabels ) {
784 dayLabel = new QLabel(mDayLabels); 810 dayLabel = new QPushButton(mDayLabels);
811 dayLabel->setFlat( true );
812 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
813 dayLabel->setFocusPolicy(NoFocus);
785 mDayLabelsList.append( dayLabel ); 814 mDayLabelsList.append( dayLabel );
786 mLayoutDayLabels->addWidget(dayLabel); 815 mLayoutDayLabels->addWidget(dayLabel);
787 } 816 }
788 //dayLabel->hide();//test only 817 //dayLabel->hide();//test only
789 818
790 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; 819 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ;
791 if ( offset < 0 ) offset = 0; 820 if ( offset < 0 ) offset = 0;
792 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 821 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
793 dayLabel->setText("");//QString::number ( mSelectedDates.first().month() ) ); 822 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
794 dayLabel->show(); 823 dayLabel->show();
824 dayLabel->setCaption("last");
795 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 825 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
796 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 826 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);
797 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 827 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
798 if ( !appendLabels ) { 828 if ( !appendLabels ) {
799 dayLabel = mDayLabelsList.next(); 829 dayLabel = mDayLabelsList.next();
800 while ( dayLabel ) { 830 while ( dayLabel ) {
801 //qDebug("!dayLabel %d",dayLabel ); 831 //qDebug("!dayLabel %d",dayLabel );
802 dayLabel->hide(); 832 dayLabel->hide();
803 dayLabel = mDayLabelsList.next(); 833 dayLabel = mDayLabelsList.next();
804 } 834 }
805 } 835 }
806 //mDayLabelsFrame->show(); 836 //mDayLabelsFrame->show();
807 //mDayLabels->show(); 837 //mDayLabels->show();
808 //qDebug("heigt %d %d %d ",mDayLabelsFrame->height(), mDayLabelsFrame->sizeHint().height(), newHight); 838 //qDebug("heigt %d %d %d ",mDayLabelsFrame->height(), mDayLabelsFrame->sizeHint().height(), newHight);
809 //mDayLabelsFrame->resize( mAgenda->visibleWidth(), newHight ); 839 //mDayLabelsFrame->resize( mAgenda->visibleWidth(), newHight );
810 mDayLabelsFrame->setFixedHeight( newHight ); 840 mDayLabelsFrame->setFixedHeight( newHight );
811} 841}
812 842
813int KOAgendaView::maxDatesHint() 843int KOAgendaView::maxDatesHint()
814{ 844{
815 // Not sure about the max number of events, so return 0 for now. 845 // Not sure about the max number of events, so return 0 for now.
816 return 0; 846 return 0;
817} 847}
818 848
819int KOAgendaView::currentDateCount() 849int KOAgendaView::currentDateCount()
820{ 850{
821 return mSelectedDates.count(); 851 return mSelectedDates.count();
822} 852}
823 853
824QPtrList<Incidence> KOAgendaView::selectedIncidences() 854QPtrList<Incidence> KOAgendaView::selectedIncidences()
825{ 855{
826 QPtrList<Incidence> selected; 856 QPtrList<Incidence> selected;
827 Incidence *incidence; 857 Incidence *incidence;
828 858
829 incidence = mAgenda->selectedIncidence(); 859 incidence = mAgenda->selectedIncidence();
830 if (incidence) selected.append(incidence); 860 if (incidence) selected.append(incidence);
831 861
832 incidence = mAllDayAgenda->selectedIncidence(); 862 incidence = mAllDayAgenda->selectedIncidence();
833 if (incidence) selected.append(incidence); 863 if (incidence) selected.append(incidence);
834 864
835 return selected; 865 return selected;
836} 866}
837 867
838DateList KOAgendaView::selectedDates() 868DateList KOAgendaView::selectedDates()
839{ 869{
840 DateList selected; 870 DateList selected;
841 QDate qd; 871 QDate qd;
842 872
843 qd = mAgenda->selectedIncidenceDate(); 873 qd = mAgenda->selectedIncidenceDate();
844 if (qd.isValid()) selected.append(qd); 874 if (qd.isValid()) selected.append(qd);
845 875
846 qd = mAllDayAgenda->selectedIncidenceDate(); 876 qd = mAllDayAgenda->selectedIncidenceDate();
847 if (qd.isValid()) selected.append(qd); 877 if (qd.isValid()) selected.append(qd);
848 878
849 return selected; 879 return selected;
850} 880}
851 881
852 882
853void KOAgendaView::updateView() 883void KOAgendaView::updateView()
854{ 884{
855 if ( mBlockUpdating ) 885 if ( mBlockUpdating )
856 return; 886 return;
857 // kdDebug() << "KOAgendaView::updateView()" << endl; 887 // kdDebug() << "KOAgendaView::updateView()" << endl;
858 fillAgenda(); 888 fillAgenda();
859 889
860} 890}
861 891
862 892
863/* 893/*
864 Update configuration settings for the agenda view. This method is not 894 Update configuration settings for the agenda view. This method is not
865 complete. 895 complete.
866*/ 896*/
867void KOAgendaView::updateConfig() 897void KOAgendaView::updateConfig()
868{ 898{
869 if ( mBlockUpdating ) 899 if ( mBlockUpdating )
870 return; 900 return;
871 // kdDebug() << "KOAgendaView::updateConfig()" << endl; 901 // kdDebug() << "KOAgendaView::updateConfig()" << endl;
872 902
873 // update config for children 903 // update config for children
874 mTimeLabels->updateConfig(); 904 mTimeLabels->updateConfig();
875 mAgenda->storePosition(); 905 mAgenda->storePosition();
876 mAgenda->updateConfig(); 906 mAgenda->updateConfig();
877 mAllDayAgenda->updateConfig(); 907 mAllDayAgenda->updateConfig();
878 // widget synchronization 908 // widget synchronization
879 //TODO: find a better way, maybe signal/slot 909 //TODO: find a better way, maybe signal/slot
880 mTimeLabels->positionChanged(); 910 mTimeLabels->positionChanged();
881 911
882 // for some reason, this needs to be called explicitly 912 // for some reason, this needs to be called explicitly
883 mTimeLabels->repaint(); 913 mTimeLabels->repaint();
884 914
885 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 915 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
886 916
887 // ToolTips displaying summary of events 917 // ToolTips displaying summary of events
888 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 918 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
889 ->mEnableToolTips); 919 ->mEnableToolTips);
890 920
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index 7774fbe..fd0a7af 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -114,149 +114,150 @@ class EventIndicator : public QFrame {
114/** 114/**
115 KOAgendaView is the agenda-like view used to display events in an one or 115 KOAgendaView is the agenda-like view used to display events in an one or
116 multi-day view. 116 multi-day view.
117*/ 117*/
118class KOAgendaView : public KOEventView { 118class KOAgendaView : public KOEventView {
119 Q_OBJECT 119 Q_OBJECT
120 public: 120 public:
121 KOAgendaView(Calendar *cal,QWidget *parent = 0,const char *name = 0 ); 121 KOAgendaView(Calendar *cal,QWidget *parent = 0,const char *name = 0 );
122 virtual ~KOAgendaView(); 122 virtual ~KOAgendaView();
123 void setStartHour( int ); 123 void setStartHour( int );
124 void toggleAllDay(); 124 void toggleAllDay();
125 125
126 126
127 /** Returns maximum number of days supported by the koagendaview */ 127 /** Returns maximum number of days supported by the koagendaview */
128 virtual int maxDatesHint(); 128 virtual int maxDatesHint();
129 129
130 /** Returns number of currently shown dates. */ 130 /** Returns number of currently shown dates. */
131 virtual int currentDateCount(); 131 virtual int currentDateCount();
132 132
133 /** returns the currently selected events */ 133 /** returns the currently selected events */
134 virtual QPtrList<Incidence> selectedIncidences(); 134 virtual QPtrList<Incidence> selectedIncidences();
135 135
136 /** returns the currently selected events */ 136 /** returns the currently selected events */
137 virtual DateList selectedDates(); 137 virtual DateList selectedDates();
138 138
139 /** Remove all events from view */ 139 /** Remove all events from view */
140 void clearView(); 140 void clearView();
141 KOAgenda *agenda() { return mAgenda;} 141 KOAgenda *agenda() { return mAgenda;}
142 virtual void printPreview(CalPrinter *calPrinter, 142 virtual void printPreview(CalPrinter *calPrinter,
143 const QDate &, const QDate &); 143 const QDate &, const QDate &);
144 144
145 /** start-datetime of selection */ 145 /** start-datetime of selection */
146 QDateTime selectionStart() {return mTimeSpanBegin;} 146 QDateTime selectionStart() {return mTimeSpanBegin;}
147 /** end-datetime of selection */ 147 /** end-datetime of selection */
148 QDateTime selectionEnd() {return mTimeSpanEnd;} 148 QDateTime selectionEnd() {return mTimeSpanEnd;}
149 /** returns true if selection is for whole day */ 149 /** returns true if selection is for whole day */
150 bool selectedIsAllDay() {return mTimeSpanInAllDay;} 150 bool selectedIsAllDay() {return mTimeSpanInAllDay;}
151 /** make selected start/end invalid */ 151 /** make selected start/end invalid */
152 void deleteSelectedDateTime(); 152 void deleteSelectedDateTime();
153 void repaintAgenda(); 153 void repaintAgenda();
154 public slots: 154 public slots:
155 virtual void updateView(); 155 virtual void updateView();
156 virtual void updateConfig(); 156 virtual void updateConfig();
157 virtual void showDates(const QDate &start, const QDate &end); 157 virtual void showDates(const QDate &start, const QDate &end);
158 virtual void showEvents(QPtrList<Event> eventList); 158 virtual void showEvents(QPtrList<Event> eventList);
159 159
160 void updateTodo( Todo *, int ); 160 void updateTodo( Todo *, int );
161 void changeEventDisplay(Event *, int); 161 void changeEventDisplay(Event *, int);
162 162
163 void clearSelection(); 163 void clearSelection();
164 164
165 void newTodo(int gx,int gy); 165 void newTodo(int gx,int gy);
166 void newEvent(int gx,int gy); 166 void newEvent(int gx,int gy);
167 void newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd); 167 void newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd);
168 void newEventAllDay(int gx, int gy); 168 void newEventAllDay(int gx, int gy);
169 void newTodoAllDay(int gx, int gy); 169 void newTodoAllDay(int gx, int gy);
170 170
171 void startDrag(Event *); 171 void startDrag(Event *);
172 172
173 void readSettings(); 173 void readSettings();
174 void readSettings(KConfig *); 174 void readSettings(KConfig *);
175 void writeSettings(KConfig *); 175 void writeSettings(KConfig *);
176 176
177 void setContentsPos(int y); 177 void setContentsPos(int y);
178 178
179 void setExpandedButton( bool expanded ); 179 void setExpandedButton( bool expanded );
180 void scrollOneHourUp(); 180 void scrollOneHourUp();
181 void scrollOneHourDown(); 181 void scrollOneHourDown();
182 void addToCalSlot(Incidence *, Incidence *); 182 void addToCalSlot(Incidence *, Incidence *);
183 183
184 signals: 184 signals:
185 void showDateView( int, QDate ); 185 void showDateView( int, QDate );
186 void newTodoSignal( QDateTime ,bool ); 186 void newTodoSignal( QDateTime ,bool );
187 void toggleExpand(); 187 void toggleExpand();
188 void todoMoved( Todo *, int ); 188 void todoMoved( Todo *, int );
189 void incidenceChanged(Incidence * , int ); 189 void incidenceChanged(Incidence * , int );
190 // void cloneIncidenceSignal(Incidence *); 190 // void cloneIncidenceSignal(Incidence *);
191 191
192 protected: 192 protected:
193 bool mBlockUpdating; 193 bool mBlockUpdating;
194 int mUpcomingWidth; 194 int mUpcomingWidth;
195 /** Fill agenda beginning with date startDate */ 195 /** Fill agenda beginning with date startDate */
196 void fillAgenda(const QDate &startDate); 196 void fillAgenda(const QDate &startDate);
197 void resizeEvent( QResizeEvent* e ); 197 void resizeEvent( QResizeEvent* e );
198 /** Fill agenda using the current set value for the start date */ 198 /** Fill agenda using the current set value for the start date */
199 void fillAgenda(); 199 void fillAgenda();
200 200
201 /** Create labels for the selected dates. */ 201 /** Create labels for the selected dates. */
202 void createDayLabels(); 202 void createDayLabels();
203 203
204 /** 204 /**
205 Set the masks on the agenda widgets indicating, which days are holidays. 205 Set the masks on the agenda widgets indicating, which days are holidays.
206 */ 206 */
207 void setHolidayMasks(); 207 void setHolidayMasks();
208 208
209 protected slots: 209 protected slots:
210 void slotDaylabelClicked();
210 /** Update event belonging to agenda item */ 211 /** Update event belonging to agenda item */
211 void updateEventDates(KOAgendaItem *item, int mode = -1); 212 void updateEventDates(KOAgendaItem *item, int mode = -1);
212 //void updateMovedTodo(); 213 //void updateMovedTodo();
213 214
214 void updateEventIndicatorTop(int newY); 215 void updateEventIndicatorTop(int newY);
215 void updateEventIndicatorBottom(int newY); 216 void updateEventIndicatorBottom(int newY);
216 217
217 /** Updates data for selected timespan */ 218 /** Updates data for selected timespan */
218 void newTimeSpanSelected(int gxStart, int gyStart, int gxEnd, int gyEnd); 219 void newTimeSpanSelected(int gxStart, int gyStart, int gxEnd, int gyEnd);
219 /** Updates data for selected timespan for all day event*/ 220 /** Updates data for selected timespan for all day event*/
220 void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd); 221 void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd);
221 222
222 private: 223 private:
223 // view widgets 224 // view widgets
224 QFrame *mDayLabels; 225 QFrame *mDayLabels;
225 QHBox *mDayLabelsFrame; 226 QHBox *mDayLabelsFrame;
226 QBoxLayout *mLayoutDayLabels; 227 QBoxLayout *mLayoutDayLabels;
227 QFrame *mAllDayFrame; 228 QFrame *mAllDayFrame;
228 KOAgenda *mAllDayAgenda; 229 KOAgenda *mAllDayAgenda;
229 KOAgenda *mAgenda; 230 KOAgenda *mAgenda;
230 TimeLabels *mTimeLabels; 231 TimeLabels *mTimeLabels;
231 QWidget *mDummyAllDayLeft; 232 QWidget *mDummyAllDayLeft;
232 233
233 KDGanttMinimizeSplitter* mSplitterAgenda; 234 KDGanttMinimizeSplitter* mSplitterAgenda;
234 QPushButton *mExpandButton; 235 QPushButton *mExpandButton;
235 236
236 DateList mSelectedDates; // List of dates to be displayed 237 DateList mSelectedDates; // List of dates to be displayed
237 int mViewType; 238 int mViewType;
238 239
239 bool mWeekStartsMonday; 240 bool mWeekStartsMonday;
240 int mStartHour; 241 int mStartHour;
241 242
242 KOEventPopupMenu *mAgendaPopup; 243 KOEventPopupMenu *mAgendaPopup;
243 KOEventPopupMenu *mAllDayAgendaPopup; 244 KOEventPopupMenu *mAllDayAgendaPopup;
244 245
245 EventIndicator *mEventIndicatorTop; 246 EventIndicator *mEventIndicatorTop;
246 EventIndicator *mEventIndicatorBottom; 247 EventIndicator *mEventIndicatorBottom;
247 248
248 QMemArray<int> mMinY; 249 QMemArray<int> mMinY;
249 QMemArray<int> mMaxY; 250 QMemArray<int> mMaxY;
250 251
251 QMemArray<bool> mHolidayMask; 252 QMemArray<bool> mHolidayMask;
252 253
253 QPixmap mExpandedPixmap; 254 QPixmap mExpandedPixmap;
254 QPixmap mNotExpandedPixmap; 255 QPixmap mNotExpandedPixmap;
255 QPtrList<QLabel> mDayLabelsList; 256 QPtrList<QPushButton> mDayLabelsList;
256 QDateTime mTimeSpanBegin; 257 QDateTime mTimeSpanBegin;
257 QDateTime mTimeSpanEnd; 258 QDateTime mTimeSpanEnd;
258 bool mTimeSpanInAllDay; 259 bool mTimeSpanInAllDay;
259 void keyPressEvent ( QKeyEvent * e ); 260 void keyPressEvent ( QKeyEvent * e );
260}; 261};
261 262
262#endif // KOAGENDAVIEW_H 263#endif // KOAGENDAVIEW_H
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index db23882..30f5fb1 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -18,217 +18,224 @@
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <qwidgetstack.h> 26#include <qwidgetstack.h>
27 27
28#include <kconfig.h> 28#include <kconfig.h>
29#include <kglobal.h> 29#include <kglobal.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#else 32#else
33#include <qapplication.h> 33#include <qapplication.h>
34#endif 34#endif
35#include <qdatetime.h> 35#include <qdatetime.h>
36#include "calendarview.h" 36#include "calendarview.h"
37#include "datenavigator.h" 37#include "datenavigator.h"
38#include "kotodoview.h" 38#include "kotodoview.h"
39#include "koagendaview.h" 39#include "koagendaview.h"
40#include "kodialogmanager.h" 40#include "kodialogmanager.h"
41#include "komonthview.h" 41#include "komonthview.h"
42#include "kolistview.h" 42#include "kolistview.h"
43#include "kowhatsnextview.h" 43#include "kowhatsnextview.h"
44#include "kojournalview.h" 44#include "kojournalview.h"
45#include "kotimespanview.h" 45#include "kotimespanview.h"
46#include "koprefs.h" 46#include "koprefs.h"
47#include "navigatorbar.h" 47#include "navigatorbar.h"
48#include "kdatenavigator.h" 48#include "kdatenavigator.h"
49 49
50#include "koviewmanager.h" 50#include "koviewmanager.h"
51//extern bool externFlagMonthviewBlockPainting; 51//extern bool externFlagMonthviewBlockPainting;
52 52
53//bool globalFlagBlockPainting = false; 53//bool globalFlagBlockPainting = false;
54int globalFlagBlockAgenda = 0; 54int globalFlagBlockAgenda = 0;
55int globalFlagBlockLabel = 0; 55int globalFlagBlockLabel = 0;
56int globalFlagBlockAgendaItemPaint = 1; 56int globalFlagBlockAgendaItemPaint = 1;
57int globalFlagBlockAgendaItemUpdate = 1; 57int globalFlagBlockAgendaItemUpdate = 1;
58 58
59 59
60KOViewManager::KOViewManager( CalendarView *mainView ) : 60KOViewManager::KOViewManager( CalendarView *mainView ) :
61 QObject(), mMainView( mainView ) 61 QObject(), mMainView( mainView )
62{ 62{
63 mCurrentView = 0; 63 mCurrentView = 0;
64 64
65 mWhatsNextView = 0; 65 mWhatsNextView = 0;
66 mTodoView = 0; 66 mTodoView = 0;
67 mAgendaView = 0; 67 mAgendaView = 0;
68 mMonthView = 0; 68 mMonthView = 0;
69 mListView = 0; 69 mListView = 0;
70 mJournalView = 0; 70 mJournalView = 0;
71 mTimeSpanView = 0; 71 mTimeSpanView = 0;
72 mCurrentAgendaView = 0 ; 72 mCurrentAgendaView = 0 ;
73 mFlagShowNextxDays = false; 73 mFlagShowNextxDays = false;
74} 74}
75 75
76KOViewManager::~KOViewManager() 76KOViewManager::~KOViewManager()
77{ 77{
78} 78}
79 79
80 80
81KOrg::BaseView *KOViewManager::currentView() 81KOrg::BaseView *KOViewManager::currentView()
82{ 82{
83 return mCurrentView; 83 return mCurrentView;
84} 84}
85 85
86void KOViewManager::readSettings(KConfig *config) 86void KOViewManager::readSettings(KConfig *config)
87{ 87{
88 config->setGroup("General"); 88 config->setGroup("General");
89 QString view = config->readEntry("Current View"); 89 QString view = config->readEntry("Current View");
90 if (view == "WhatsNext") showWhatsNextView(); 90 if (view == "WhatsNext") showWhatsNextView();
91 else if (view == "Month") showMonthView(); 91 else if (view == "Month") showMonthView();
92 else if (view == "List") showListView(); 92 else if (view == "List") showListView();
93 else if (view == "Journal") showJournalView(); 93 else if (view == "Journal") showJournalView();
94 else if (view == "TimeSpan") showTimeSpanView(); 94 else if (view == "TimeSpan") showTimeSpanView();
95 else if (view == "Todo") showTodoView(); 95 else if (view == "Todo") showTodoView();
96 else { 96 else {
97 showAgendaView(); 97 showAgendaView();
98 } 98 }
99} 99}
100 100
101 101
102void KOViewManager::showDateView( int view, QDate date) 102void KOViewManager::showDateView( int view, QDate date)
103{ 103{
104 104
105 //qDebug("date %d %s", view, date.toString().latin1()); 105 //qDebug("date %d %s", view, date.toString().latin1());
106#if 0 106#if 0
107 mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 ); 107 mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 );
108 mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next Week"),4 ); 108 mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next Week"),4 );
109 mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Two Weeks"),5 ); 109 mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Two Weeks"),5 );
110 mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Month"),6 ); 110 mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Month"),6 );
111 mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); 111 mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 );
112#endif 112#endif
113 if ( view == 3 ) { 113 if ( view == 3 ) {
114 //mCurrentAgendaView = 1 ;
114 mMainView->showDay( date ); 115 mMainView->showDay( date );
115 } else if (view == 4 ) { 116 } else if (view == 4 ) {
117 mCurrentAgendaView = 7 ;
116 mMainView->dateNavigator()->selectDates( date, 7 ); 118 mMainView->dateNavigator()->selectDates( date, 7 );
117 } else if (view == 5 ) { 119 } else if (view == 5 ) {
120 mCurrentAgendaView = 14 ;
118 mMainView->dateNavigator()->selectDates( date, 14); 121 mMainView->dateNavigator()->selectDates( date, 14);
119 } else if (view == 6 ) { 122 } else if (view == 6 ) {
120 mMainView->dateNavigator()->blockSignals( true ); 123 mMainView->dateNavigator()->blockSignals( true );
121 showMonthView(); 124 showMonthView();
122 mMainView->dateNavigator()->selectMonthByDate( date ); 125 mMainView->dateNavigator()->selectMonthByDate( date );
123 mMainView->dateNavigator()->blockSignals( false ); 126 mMainView->dateNavigator()->blockSignals( false );
124 mMainView->dateNavigator()->selectDate( date ); 127 mMainView->dateNavigator()->selectDate( date );
125 } else if (view == 7 ) { 128 } else if (view == 7 ) {
126 mMainView->dateNavigator()->selectDate( date ); 129 mMainView->dateNavigator()->selectDate( date );
127 showJournalView(); 130 showJournalView();
128 } else if (view == 8 ) { 131 } else if (view == 8 ) {
129 globalFlagBlockAgenda = 1; 132 globalFlagBlockAgenda = 1;
130 if ( mCurrentAgendaView != 3 ) 133 if ( mCurrentAgendaView != 3 )
131 mCurrentAgendaView = -1; 134 mCurrentAgendaView = -1;
132 showAgendaView(KOPrefs::instance()->mFullViewMonth); 135 showAgendaView(KOPrefs::instance()->mFullViewMonth);
133 globalFlagBlockAgenda = 2; 136 globalFlagBlockAgenda = 2;
134 mMainView->dateNavigator()->selectDates( date , 137 mMainView->dateNavigator()->selectDates( date ,
135 KOPrefs::instance()->mNextXDays ); 138 KOPrefs::instance()->mNextXDays );
136 mFlagShowNextxDays = true; 139 mFlagShowNextxDays = true;
137 mCurrentAgendaView = 3 ; 140 mCurrentAgendaView = 3 ;
138 } 141 } if (view == 9) {
142 showWeekView();
143 } else if (view == 10) {
144 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() );
145 }
139 146
140#if 0 147#if 0
141 dateNavigator()->blockSignals( true ); 148 dateNavigator()->blockSignals( true );
142 dateNavigator()->selectDate( d ); 149 dateNavigator()->selectDate( d );
143 dateNavigator()->blockSignals( false ); 150 dateNavigator()->blockSignals( false );
144 mViewManager->showDayView(); 151 mViewManager->showDayView();
145#endif 152#endif
146 153
147} 154}
148 155
149 156
150 157
151void KOViewManager::writeSettings(KConfig *config) 158void KOViewManager::writeSettings(KConfig *config)
152{ 159{
153 config->setGroup("General"); 160 config->setGroup("General");
154 161
155 QString view; 162 QString view;
156 if (mCurrentView == mWhatsNextView) view = "WhatsNext"; 163 if (mCurrentView == mWhatsNextView) view = "WhatsNext";
157 else if (mCurrentView == mMonthView) view = "Month"; 164 else if (mCurrentView == mMonthView) view = "Month";
158 else if (mCurrentView == mListView) view = "List"; 165 else if (mCurrentView == mListView) view = "List";
159 else if (mCurrentView == mJournalView) view = "Journal"; 166 else if (mCurrentView == mJournalView) view = "Journal";
160 else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; 167 else if (mCurrentView == mTimeSpanView) view = "TimeSpan";
161 else if (mCurrentView == mTodoView) view = "Todo"; 168 else if (mCurrentView == mTodoView) view = "Todo";
162 else view = "Agenda"; 169 else view = "Agenda";
163 170
164 config->writeEntry("Current View",view); 171 config->writeEntry("Current View",view);
165 172
166 if (mAgendaView) { 173 if (mAgendaView) {
167 mAgendaView->writeSettings(config); 174 mAgendaView->writeSettings(config);
168 } 175 }
169 if (mTimeSpanView) { 176 if (mTimeSpanView) {
170 mTimeSpanView->writeSettings(config); 177 mTimeSpanView->writeSettings(config);
171 } 178 }
172 if (mListView) { 179 if (mListView) {
173 mListView->writeSettings(config); 180 mListView->writeSettings(config);
174 } 181 }
175 if (mTodoView) { 182 if (mTodoView) {
176 mTodoView->saveLayout(config,"Todo View"); 183 mTodoView->saveLayout(config,"Todo View");
177 } 184 }
178} 185}
179 186
180void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) 187void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
181{ 188{
182 189
183 //mFlagShowNextxDays = false; 190 //mFlagShowNextxDays = false;
184 //if(view == mCurrentView) return; 191 //if(view == mCurrentView) return;
185 if ( view == 0 ) { 192 if ( view == 0 ) {
186 view = mCurrentView; 193 view = mCurrentView;
187 if ( view == 0 ) 194 if ( view == 0 )
188 return; 195 return;
189 } 196 }
190 bool full = fullScreen; 197 bool full = fullScreen;
191 if(view == mCurrentView && view != mWhatsNextView ) { 198 if(view == mCurrentView && view != mWhatsNextView ) {
192 if ( mCurrentAgendaView < 0 ) 199 if ( mCurrentAgendaView < 0 )
193 return; 200 return;
194 full = mMainView->leftFrame()->isVisible(); 201 full = mMainView->leftFrame()->isVisible();
195 } else { 202 } else {
196 mCurrentView = view; 203 mCurrentView = view;
197 // bool full = fullScreen; 204 // bool full = fullScreen;
198 bool isFull = !mMainView->leftFrame()->isVisible(); 205 bool isFull = !mMainView->leftFrame()->isVisible();
199 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) 206 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen )
200 full = true; 207 full = true;
201 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) 208 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen )
202 full = false; 209 full = false;
203 } 210 }
204 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime(); 211 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime();
205 //raiseCurrentView( full ); 212 //raiseCurrentView( full );
206 mMainView->processIncidenceSelection( 0 ); 213 mMainView->processIncidenceSelection( 0 );
207 //mMainView->updateView(); 214 //mMainView->updateView();
208 raiseCurrentView( full, true ); 215 raiseCurrentView( full, true );
209 mMainView->adaptNavigationUnits(); 216 mMainView->adaptNavigationUnits();
210} 217}
211 218
212void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 219void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
213{ 220{
214 mCurrentAgendaView = 0; 221 mCurrentAgendaView = 0;
215 int wid = mMainView->width() ; 222 int wid = mMainView->width() ;
216 int hei = mMainView->height(); 223 int hei = mMainView->height();
217 if ( mCurrentView == mMonthView ) { 224 if ( mCurrentView == mMonthView ) {
218 mMainView->navigatorBar()->show(); 225 mMainView->navigatorBar()->show();
219 hei -= mMainView->navigatorBar()->sizeHint().height(); 226 hei -= mMainView->navigatorBar()->sizeHint().height();
220 //mMainView->navigatorBar()->hide(); 227 //mMainView->navigatorBar()->hide();
221 } else { 228 } else {
222 mMainView->navigatorBar()->hide(); 229 mMainView->navigatorBar()->hide();
223 } 230 }
224 if ( fullScreen ) { 231 if ( fullScreen ) {
225 mMainView->leftFrame()->hide(); 232 mMainView->leftFrame()->hide();
226 } else { 233 } else {
227 mMainView->leftFrame()->show(); 234 mMainView->leftFrame()->show();
228 if ( KOPrefs::instance()->mVerticalScreen ) 235 if ( KOPrefs::instance()->mVerticalScreen )
229 hei -= mMainView->leftFrame()->height(); 236 hei -= mMainView->leftFrame()->height();
230 else 237 else
231 wid -= mMainView->leftFrame()->width(); 238 wid -= mMainView->leftFrame()->width();
232 } 239 }
233 emit signalFullScreen( !fullScreen ); 240 emit signalFullScreen( !fullScreen );
234 if ( callUpdateView ) 241 if ( callUpdateView )