summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index f9685e9..ab69158 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -488,385 +488,387 @@ void CalendarView::init()
488 leftFrameLayout->addWidget(mTodoList,2 ); 488 leftFrameLayout->addWidget(mTodoList,2 );
489 leftFrameLayout->addWidget(mFilterView ); 489 leftFrameLayout->addWidget(mFilterView );
490 } 490 }
491#endif 491#endif
492 mFilterView->hide(); 492 mFilterView->hide();
493 mCalEditView->hide(); 493 mCalEditView->hide();
494 QWidget *rightBox = new QWidget( mMainFrame ); 494 QWidget *rightBox = new QWidget( mMainFrame );
495 //mainBoxLayout->addWidget ( rightBox, 10 ); 495 //mainBoxLayout->addWidget ( rightBox, 10 );
496 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 496 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
497 mRightFrame = new QWidgetStack( rightBox ); 497 mRightFrame = new QWidgetStack( rightBox );
498 rightLayout->addWidget( mRightFrame, 10 ); 498 rightLayout->addWidget( mRightFrame, 10 );
499 499
500 //mLeftFrame = (QWidget *)leftFrame; 500 //mLeftFrame = (QWidget *)leftFrame;
501 if ( KOPrefs::instance()->mVerticalScreen ) { 501 if ( KOPrefs::instance()->mVerticalScreen ) {
502 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); 502 //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() );
503 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); 503 //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() );
504 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); 504 //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() );
505 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); 505 //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() );
506 } else { 506 } else {
507 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() ); 507 //mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() );
508 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); 508 //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() );
509 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); 509 //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() );
510 } 510 }
511 if ( !KOPrefs::instance()->mShowDateNavigator) 511 if ( !KOPrefs::instance()->mShowDateNavigator)
512 mDateNavigator->hide(); 512 mDateNavigator->hide();
513 //qDebug("Calendarview Size %d %d ", width(), height()); 513 //qDebug("Calendarview Size %d %d ", width(), height());
514#endif 514#endif
515 515
516 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 516 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
517 SLOT( showDates( const KCal::DateList & ) ) ); 517 SLOT( showDates( const KCal::DateList & ) ) );
518 518
519 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 519 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
520 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 520 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
521 521
522 522
523 523
524 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ), 524 connect( mDateNavigator, SIGNAL( showMonth( const QDate & ) ),
525 mViewManager, SLOT( showMonth( const QDate & ) ) ); 525 mViewManager, SLOT( showMonth( const QDate & ) ) );
526 526
527 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), 527 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ),
528 mNavigator, SLOT( selectWeek( const QDate & ) ) ); 528 mNavigator, SLOT( selectWeek( const QDate & ) ) );
529 529
530 connect( mDateNavigator, SIGNAL( goPrevYear() ), 530 connect( mDateNavigator, SIGNAL( goPrevYear() ),
531 mNavigator, SLOT( selectPreviousYear() ) ); 531 mNavigator, SLOT( selectPreviousYear() ) );
532 connect( mDateNavigator, SIGNAL( goNextYear() ), 532 connect( mDateNavigator, SIGNAL( goNextYear() ),
533 mNavigator, SLOT( selectNextYear() ) ); 533 mNavigator, SLOT( selectNextYear() ) );
534 connect( mDateNavigator, SIGNAL( goPrevMonth() ), 534 connect( mDateNavigator, SIGNAL( goPrevMonth() ),
535 mNavigator, SLOT( selectPreviousMonth() ) ); 535 mNavigator, SLOT( selectPreviousMonth() ) );
536 connect( mDateNavigator, SIGNAL( goNextMonth() ), 536 connect( mDateNavigator, SIGNAL( goNextMonth() ),
537 mNavigator, SLOT( selectNextMonth() ) ); 537 mNavigator, SLOT( selectNextMonth() ) );
538 538
539 connect( mDateNavigator, SIGNAL( goPrevious() ), 539 connect( mDateNavigator, SIGNAL( goPrevious() ),
540 mNavigator, SLOT( selectPrevious() ) ); 540 mNavigator, SLOT( selectPrevious() ) );
541 connect( mDateNavigator, SIGNAL( goNext() ), 541 connect( mDateNavigator, SIGNAL( goNext() ),
542 mNavigator, SLOT( selectNext() ) ); 542 mNavigator, SLOT( selectNext() ) );
543 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), 543 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ),
544 mNavigator, SLOT( slotMonthSelect( int ) ) ); 544 mNavigator, SLOT( slotMonthSelect( int ) ) );
545 545
546 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 546 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
547 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 547 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
548#if 0 548#if 0
549 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ), 549 connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ),
550 SLOT( incidenceAdded( Incidence *) ) ); 550 SLOT( incidenceAdded( Incidence *) ) );
551#endif 551#endif
552 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); 552 // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView()));
553 553
554 connect( this, SIGNAL( configChanged() ), 554 connect( this, SIGNAL( configChanged() ),
555 mDateNavigator, SLOT( updateConfig() ) ); 555 mDateNavigator, SLOT( updateConfig() ) );
556 556
557 connect( mTodoList, SIGNAL( newTodoSignal() ), 557 connect( mTodoList, SIGNAL( newTodoSignal() ),
558 SLOT( newTodo() ) ); 558 SLOT( newTodo() ) );
559 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), 559 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ),
560 SLOT( newSubTodo( Todo * ) ) ); 560 SLOT( newSubTodo( Todo * ) ) );
561 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), 561 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ),
562 SLOT( editTodo( Todo * ) ) ); 562 SLOT( editTodo( Todo * ) ) );
563 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), 563 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ),
564 SLOT( showTodo( Todo *) ) ); 564 SLOT( showTodo( Todo *) ) );
565 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), 565 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ),
566 SLOT( deleteTodo( Todo *) ) ); 566 SLOT( deleteTodo( Todo *) ) );
567 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); 567 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) );
568 connect( mTodoList, SIGNAL( purgeCompletedSignal() ), 568 connect( mTodoList, SIGNAL( purgeCompletedSignal() ),
569 SLOT( purgeCompleted() ) ); 569 SLOT( purgeCompleted() ) );
570 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), 570 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ),
571 SIGNAL( todoModified( Todo *, int ) ) ); 571 SIGNAL( todoModified( Todo *, int ) ) );
572 572
573 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), 573 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ),
574 this, SLOT ( cloneIncidence( Incidence * ) ) ); 574 this, SLOT ( cloneIncidence( Incidence * ) ) );
575 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), 575 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ),
576 this, SLOT (cancelIncidence( Incidence * ) ) ); 576 this, SLOT (cancelIncidence( Incidence * ) ) );
577 577
578 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), 578 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ),
579 this, SLOT ( moveIncidence( Incidence * ) ) ); 579 this, SLOT ( moveIncidence( Incidence * ) ) );
580 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), 580 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ),
581 this, SLOT ( beamIncidence( Incidence * ) ) ); 581 this, SLOT ( beamIncidence( Incidence * ) ) );
582 582
583 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), 583 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ),
584 this, SLOT ( todo_unsub( Todo * ) ) ); 584 this, SLOT ( todo_unsub( Todo * ) ) );
585 585
586 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 586 connect( mTodoList, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
587 this, SLOT ( todo_resub( Todo *,Todo * ) ) ); 587 this, SLOT ( todo_resub( Todo *,Todo * ) ) );
588 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, 588 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList,
589 SLOT( updateTodo( Todo *, int ) ) ); 589 SLOT( updateTodo( Todo *, int ) ) );
590 connect( this, SIGNAL( todoModified( Todo *, int )), this, 590 connect( this, SIGNAL( todoModified( Todo *, int )), this,
591 SLOT( changeTodoDisplay( Todo *, int ) ) ); 591 SLOT( changeTodoDisplay( Todo *, int ) ) );
592 592
593 593
594 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); 594 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) );
595 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); 595 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) );
596 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); 596 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) );
597 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); 597 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) );
598 598
599 599
600 600
601 601
602 602
603 connect(QApplication::clipboard(),SIGNAL(dataChanged()), 603 connect(QApplication::clipboard(),SIGNAL(dataChanged()),
604 SLOT(checkClipboard())); 604 SLOT(checkClipboard()));
605 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), 605 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ),
606 SLOT( processTodoListSelection( Incidence * ) ) ); 606 SLOT( processTodoListSelection( Incidence * ) ) );
607 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); 607 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool)));
608 608
609 // kdDebug() << "CalendarView::CalendarView() done" << endl; 609 // kdDebug() << "CalendarView::CalendarView() done" << endl;
610 610
611 mDateFrame = new QVBox(0,0,WType_Popup); 611 mDateFrame = new QVBox(0,0,WType_Popup);
612 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 612 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
613 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); 613 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised );
614 mDateFrame->setLineWidth(3); 614 mDateFrame->setLineWidth(3);
615 mDateFrame->hide(); 615 mDateFrame->hide();
616 mDateFrame->setCaption( i18n( "Pick a date to display")); 616 mDateFrame->setCaption( i18n( "Pick a date to display"));
617 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); 617 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() );
618 618
619 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); 619 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate)));
620 620
621 mEventEditor = mDialogManager->getEventEditor(); 621 mEventEditor = mDialogManager->getEventEditor();
622 mTodoEditor = mDialogManager->getTodoEditor(); 622 mTodoEditor = mDialogManager->getTodoEditor();
623 623
624 mFlagEditDescription = false; 624 mFlagEditDescription = false;
625 625
626 mSuspendTimer = new QTimer( this ); 626 mSuspendTimer = new QTimer( this );
627 mAlarmTimer = new QTimer( this ); 627 mAlarmTimer = new QTimer( this );
628 mRecheckAlarmTimer = new QTimer( this ); 628 mRecheckAlarmTimer = new QTimer( this );
629 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) ); 629 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) );
630 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); 630 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) );
631 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); 631 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) );
632 mAlarmDialog = new AlarmDialog( this ); 632 mAlarmDialog = new AlarmDialog( this );
633 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); 633 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) );
634 mAlarmDialog->setServerNotification( false ); 634 mAlarmDialog->setServerNotification( false );
635 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); 635 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime );
636 636
637 637
638#ifndef DESKTOP_VERSION 638#ifndef DESKTOP_VERSION
639//US listen for arriving address resultsets 639//US listen for arriving address resultsets
640 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), 640 connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)),
641 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&))); 641 this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)));
642#endif 642#endif
643 mDateNavigator->setCalendar( mCalendar ); 643 mDateNavigator->setCalendar( mCalendar );
644} 644}
645 645
646 646
647CalendarView::~CalendarView() 647CalendarView::~CalendarView()
648{ 648{
649 // kdDebug() << "~CalendarView()" << endl; 649 // kdDebug() << "~CalendarView()" << endl;
650 //qDebug("CalendarView::~CalendarView() "); 650 //qDebug("CalendarView::~CalendarView() ");
651 delete mDialogManager; 651 delete mDialogManager;
652 delete mViewManager; 652 delete mViewManager;
653 delete mStorage; 653 delete mStorage;
654 delete mDateFrame ; 654 delete mDateFrame ;
655 delete mEventViewerDialog; 655 delete mEventViewerDialog;
656 //kdDebug() << "~CalendarView() done" << endl; 656 //kdDebug() << "~CalendarView() done" << endl;
657} 657}
658void CalendarView::nextConflict( bool all, bool allday ) 658void CalendarView::nextConflict( bool all, bool allday )
659{ 659{
660 660
661 QPtrList<Event> testlist = mCalendar->events(); 661 QPtrList<Event> testlist = mCalendar->events();
662 Event * test = testlist.first(); 662 Event * test = testlist.first();
663 while ( test ) { 663 while ( test ) {
664 test->setTagged( false ); 664 test->setTagged( false );
665 test = testlist.next(); 665 test = testlist.next();
666 } 666 }
667 QTime st ( 0,0,0); 667 QTime st ( 0,0,0);
668 if ( mViewManager->currentView() == mViewManager->agendaView() ) 668 if ( mViewManager->currentView() == mViewManager->agendaView() )
669 st = mViewManager->agendaView()->agenda()->getEndTime(); 669 st = mViewManager->agendaView()->agenda()->getEndTime();
670 //qDebug("time %s ", st.toString().latin1()); 670 //qDebug("time %s ", st.toString().latin1());
671 QDateTime startDT = QDateTime (mNavigator->selectedDates().first(),st); 671 QDateTime startDT = QDateTime (mNavigator->selectedDates().first(),st);
672 QDateTime conflict; 672 QDateTime conflict;
673 QDateTime retVal; 673 QDateTime retVal;
674 bool found = false; 674 bool found = false;
675 Event * cE = 0; 675 Event * cE = 0;
676 Event * cE2 = 0; 676 Event * cE2 = 0;
677 QPtrList<Event> testlist2 = testlist; 677 QPtrList<Event> testlist2 = testlist;
678 test = testlist.first(); 678 test = testlist.first();
679 bool skip = false; 679 bool skip = false;
680 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
680 while ( test ) { 681 while ( test ) {
682 qApp->processEvents();
681 skip = false; 683 skip = false;
682 if ( !all ) skip = ( allday != test->doesFloat() ); 684 if ( !all ) skip = ( allday != test->doesFloat() );
683 if ( !skip ) { 685 if ( !skip ) {
684 Event * test2 = testlist2.first(); 686 Event * test2 = testlist2.first();
685 while ( test2 ) { 687 while ( test2 ) {
686 skip = false; 688 skip = false;
687 if ( !all ) skip = ( allday != test2->doesFloat() ); 689 if ( !all ) skip = ( allday != test2->doesFloat() );
688 if ( !skip ) { 690 if ( !skip ) {
689 if ( !test2->isTagged() ) { 691 if ( !test2->isTagged() ) {
690 if ( test->isOverlapping ( test2, &retVal, &startDT ) ) { 692 if ( test->isOverlapping ( test2, &retVal, &startDT ) ) {
691 //qDebug("overlap "); 693 //qDebug("overlap ");
692 if ( ! found ) { 694 if ( ! found ) {
693 if ( retVal >= startDT ) { 695 if ( retVal >= startDT ) {
694 conflict = retVal; 696 conflict = retVal;
695 cE = test; 697 cE = test;
696 cE2 = test2; 698 cE2 = test2;
697 found = true; 699 found = true;
698 } 700 }
699 } else { 701 } else {
700 if ( retVal >= startDT && retVal < conflict ) { 702 if ( retVal >= startDT && retVal < conflict ) {
701 conflict = retVal; 703 conflict = retVal;
702 cE = test; 704 cE = test;
703 cE2 = test2; 705 cE2 = test2;
704 } 706 }
705 } 707 }
706 } 708 }
707 } 709 }
708 } 710 }
709 test2 = testlist2.next(); 711 test2 = testlist2.next();
710 } 712 }
711 } 713 }
712 test->setTagged( true ); 714 test->setTagged( true );
713 test = testlist.next(); 715 test = testlist.next();
714 } 716 }
715 if ( found ) { 717 if ( found ) {
716 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 718 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
717 mViewManager->showDayView(); 719 mViewManager->showDayView();
718 mNavigator->slotDaySelect( conflict.date() ); 720 mNavigator->slotDaySelect( conflict.date() );
719 int hour = conflict.time().hour(); 721 int hour = conflict.time().hour();
720 mViewManager->agendaView()->setStartHour( hour ); 722 mViewManager->agendaView()->setStartHour( hour );
721 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( cE->summary().left( 20 ) ).arg( cE2->summary().left( 20 ) ) ); 723 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( cE->summary().left( 20 ) ).arg( cE2->summary().left( 20 ) ) );
722 return; 724 return;
723 } 725 }
724 726
725 topLevelWidget()->setCaption( i18n("No conflict found") ); 727 topLevelWidget()->setCaption( i18n("No conflict found") );
726 qDebug("No conflict found "); 728 qDebug("No conflict found ");
727 return; 729 return;
728} 730}
729 731
730void CalendarView::conflictAll() 732void CalendarView::conflictAll()
731{ 733{
732 nextConflict ( true, true ); 734 nextConflict ( true, true );
733} 735}
734void CalendarView::conflictAllday() 736void CalendarView::conflictAllday()
735{ 737{
736 nextConflict ( false, true ); 738 nextConflict ( false, true );
737} 739}
738void CalendarView::conflictNotAll() 740void CalendarView::conflictNotAll()
739{ 741{
740 nextConflict ( false, false ); 742 nextConflict ( false, false );
741} 743}
742 744
743void CalendarView::setCalReadOnly( int id, bool readO ) 745void CalendarView::setCalReadOnly( int id, bool readO )
744{ 746{
745 if ( readO ) { 747 if ( readO ) {
746 emit save(); 748 emit save();
747 } 749 }
748 mCalendar->setReadOnly( id, readO ); 750 mCalendar->setReadOnly( id, readO );
749} 751}
750void CalendarView::setScrollBarStep(int val ) 752void CalendarView::setScrollBarStep(int val )
751{ 753{
752#ifdef DESKTOP_VERSION 754#ifdef DESKTOP_VERSION
753 mDateScrollBar->setLineStep ( val ); 755 mDateScrollBar->setLineStep ( val );
754#endif 756#endif
755} 757}
756void CalendarView::scrollBarValue(int val ) 758void CalendarView::scrollBarValue(int val )
757{ 759{
758#ifdef DESKTOP_VERSION 760#ifdef DESKTOP_VERSION
759 if ( QApplication::desktop()->width() < 800 ) return; 761 if ( QApplication::desktop()->width() < 800 ) return;
760 static bool block = false; 762 static bool block = false;
761 if ( block ) return; 763 if ( block ) return;
762 block = true; 764 block = true;
763 int count = mNavigator->selectedDates().count(); 765 int count = mNavigator->selectedDates().count();
764 int day = mNavigator->selectedDates().first().dayOfYear(); 766 int day = mNavigator->selectedDates().first().dayOfYear();
765 int stepdays = val; 767 int stepdays = val;
766 if ( mDateScrollBar->lineStep () <= count ) { 768 if ( mDateScrollBar->lineStep () <= count ) {
767 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 769 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
768 //qDebug("VAL %d ",val ); 770 //qDebug("VAL %d ",val );
769 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 771 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
770 stepdays = day+stepdays; 772 stepdays = day+stepdays;
771 if ( stepdays < 0 ) stepdays = 0; 773 if ( stepdays < 0 ) stepdays = 0;
772 } 774 }
773 if ( stepdays == day ) { 775 if ( stepdays == day ) {
774 block = false; 776 block = false;
775 return; 777 return;
776 } 778 }
777 int year = mNavigator->selectedDates().first().year(); 779 int year = mNavigator->selectedDates().first().year();
778 QDate d ( year,1,1 ); 780 QDate d ( year,1,1 );
779 mNavigator->selectDates( d.addDays( stepdays-1) , count ); 781 mNavigator->selectDates( d.addDays( stepdays-1) , count );
780 block = false; 782 block = false;
781#endif 783#endif
782 784
783} 785}
784void CalendarView::updateView(const QDate &start, const QDate &end) 786void CalendarView::updateView(const QDate &start, const QDate &end)
785{ 787{
786#ifdef DESKTOP_VERSION 788#ifdef DESKTOP_VERSION
787 if ( ! mDateScrollBar->draggingSlider () ) { 789 if ( ! mDateScrollBar->draggingSlider () ) {
788 int dof = start.dayOfYear(); 790 int dof = start.dayOfYear();
789 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() ); 791 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() );
790 if ( dof != mDateScrollBar->value() ) { 792 if ( dof != mDateScrollBar->value() ) {
791 mDateScrollBar->blockSignals( true ); 793 mDateScrollBar->blockSignals( true );
792 mDateScrollBar->setValue( start.dayOfYear()); 794 mDateScrollBar->setValue( start.dayOfYear());
793 mDateScrollBar->blockSignals( false ); 795 mDateScrollBar->blockSignals( false );
794 } 796 }
795 } 797 }
796#endif 798#endif
797 mTodoList->updateView(); 799 mTodoList->updateView();
798 mViewManager->updateView(start, end); 800 mViewManager->updateView(start, end);
799 //mDateNavigator->updateView(); 801 //mDateNavigator->updateView();
800} 802}
801 803
802 804
803 805
804void CalendarView::checkFiles() 806void CalendarView::checkFiles()
805{ 807{
806 QString message; 808 QString message;
807 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 809 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
808 KopiCalendarFile * cal = calendars.first(); 810 KopiCalendarFile * cal = calendars.first();
809 while ( cal ) { 811 while ( cal ) {
810 if ( cal->mErrorOnLoad ) { 812 if ( cal->mErrorOnLoad ) {
811 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n"; 813 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n";
812 } 814 }
813 cal = calendars.next(); 815 cal = calendars.next();
814 } 816 }
815 if ( !message.isEmpty() ) { 817 if ( !message.isEmpty() ) {
816 message = KGlobal::formatMessage( i18n("Calendar(s) not loaded:"),0 )+"\n" + message +KGlobal::formatMessage(i18n("You can try to reload the calendar in the Resource View!"),0); 818 message = KGlobal::formatMessage( i18n("Calendar(s) not loaded:"),0 )+"\n" + message +KGlobal::formatMessage(i18n("You can try to reload the calendar in the Resource View!"),0);
817 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed")); 819 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed"));
818 } 820 }
819 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() )); 821 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() ));
820} 822}
821void CalendarView::checkAlarms() 823void CalendarView::checkAlarms()
822{ 824{
823 825
824 826
825 KConfig *config = KOGlobals::config(); 827 KConfig *config = KOGlobals::config();
826 config->setGroup( "AppRun" ); 828 config->setGroup( "AppRun" );
827 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 829 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
828 int daysto = dt.daysTo( QDate::currentDate() ); 830 int daysto = dt.daysTo( QDate::currentDate() );
829 int days = config->readNumEntry( "LatestProgramStopDays" , daysto); 831 int days = config->readNumEntry( "LatestProgramStopDays" , daysto);
830 dt = dt.addDays( days ); 832 dt = dt.addDays( days );
831 int secto = dt.secsTo( QDateTime::currentDateTime() ); 833 int secto = dt.secsTo( QDateTime::currentDateTime() );
832 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30; 834 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30;
833 //qDebug("KO: Reading program stop %d ", secs); 835 //qDebug("KO: Reading program stop %d ", secs);
834 //secs -= ( 3600 * 24*3 ); // debug only 836 //secs -= ( 3600 * 24*3 ); // debug only
835 QDateTime latest = dt.addSecs ( secs ); 837 QDateTime latest = dt.addSecs ( secs );
836 qDebug("KO: Last termination on %s ", latest.toString().latin1()); 838 qDebug("KO: Last termination on %s ", latest.toString().latin1());
837 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() ); 839 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
838 QPtrList<Incidence> el = mCalendar->rawIncidences(); 840 QPtrList<Incidence> el = mCalendar->rawIncidences();
839 QPtrList<Incidence> al; 841 QPtrList<Incidence> al;
840 Incidence* inL = el.first(); 842 Incidence* inL = el.first();
841 QDateTime cur = QDateTime::currentDateTime().addSecs(-59); 843 QDateTime cur = QDateTime::currentDateTime().addSecs(-59);
842 qDebug("KO: Checking alarm until %s ", cur.toString().latin1()); 844 qDebug("KO: Checking alarm until %s ", cur.toString().latin1());
843 while ( inL ) { 845 while ( inL ) {
844 bool ok = false; 846 bool ok = false;
845 int offset = 0; 847 int offset = 0;
846 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ; 848 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ;
847 if ( ok ) { 849 if ( ok ) {
848 //qDebug("OK %s",next.toString().latin1()); 850 //qDebug("OK %s",next.toString().latin1());
849 if ( next < cur ) { 851 if ( next < cur ) {
850 al.append( inL ); 852 al.append( inL );
851 //qDebug("found missed alarm: %s ", inL->summary().latin1() ); 853 //qDebug("found missed alarm: %s ", inL->summary().latin1() );
852 } 854 }
853 } 855 }
854 inL = el.next(); 856 inL = el.next();
855 } 857 }
856 if ( al.count() ) { 858 if ( al.count() ) {
857 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop ); 859 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop );
858 dia->setCaption( i18n("KO/Pi: Missing alarms!") ); 860 dia->setCaption( i18n("KO/Pi: Missing alarms!") );
859 QVBoxLayout* lay = new QVBoxLayout( dia ); 861 QVBoxLayout* lay = new QVBoxLayout( dia );
860 lay->setSpacing( 0 ); 862 lay->setSpacing( 0 );
861 lay->setMargin( 0 ); 863 lay->setMargin( 0 );
862 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest ); 864 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest );
863 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) )); 865 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) ));
864 lay->addWidget( matb ); 866 lay->addWidget( matb );
865 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) { 867 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) {
866 int wid = 210; 868 int wid = 210;
867 int x = QApplication::desktop()->width() - wid - 7; 869 int x = QApplication::desktop()->width() - wid - 7;
868 int y = QApplication::desktop()->height() - wid - 70; 870 int y = QApplication::desktop()->height() - wid - 70;
869 dia->setGeometry ( x,y,wid,wid); 871 dia->setGeometry ( x,y,wid,wid);
870 } else { 872 } else {
871 int si = 220; 873 int si = 220;
872 if ( QApplication::desktop()->width() > 470 ) 874 if ( QApplication::desktop()->width() > 470 )
@@ -2579,396 +2581,394 @@ void CalendarView::writeSettings()
2579 2581
2580 config->sync(); 2582 config->sync();
2581} 2583}
2582 2584
2583void CalendarView::readFilterSettings(KConfig *config) 2585void CalendarView::readFilterSettings(KConfig *config)
2584{ 2586{
2585 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 2587 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
2586 2588
2587 mFilters.clear(); 2589 mFilters.clear();
2588 2590
2589 config->setGroup("General"); 2591 config->setGroup("General");
2590 QStringList filterList = config->readListEntry("CalendarFilters"); 2592 QStringList filterList = config->readListEntry("CalendarFilters");
2591 2593
2592 QStringList::ConstIterator it = filterList.begin(); 2594 QStringList::ConstIterator it = filterList.begin();
2593 QStringList::ConstIterator end = filterList.end(); 2595 QStringList::ConstIterator end = filterList.end();
2594 while(it != end) { 2596 while(it != end) {
2595 // kdDebug() << " filter: " << (*it) << endl; 2597 // kdDebug() << " filter: " << (*it) << endl;
2596 2598
2597 CalFilter *filter; 2599 CalFilter *filter;
2598 filter = new CalFilter(*it); 2600 filter = new CalFilter(*it);
2599 config->setGroup("Filter_" + (*it).utf8()); 2601 config->setGroup("Filter_" + (*it).utf8());
2600 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 2602 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
2601 filter->setCriteria(config->readNumEntry("Criteria",0)); 2603 filter->setCriteria(config->readNumEntry("Criteria",0));
2602 filter->setCategoryList(config->readListEntry("CategoryList")); 2604 filter->setCategoryList(config->readListEntry("CategoryList"));
2603 mFilters.append(filter); 2605 mFilters.append(filter);
2604 2606
2605 ++it; 2607 ++it;
2606 } 2608 }
2607 2609
2608 if (mFilters.count() == 0) { 2610 if (mFilters.count() == 0) {
2609 CalFilter *filter = new CalFilter(i18n("Default")); 2611 CalFilter *filter = new CalFilter(i18n("Default"));
2610 mFilters.append(filter); 2612 mFilters.append(filter);
2611 } 2613 }
2612 mFilterView->updateFilters(); 2614 mFilterView->updateFilters();
2613 config->setGroup("FilterView"); 2615 config->setGroup("FilterView");
2614 2616
2615 mFilterView->blockSignals(true); 2617 mFilterView->blockSignals(true);
2616 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 2618 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
2617 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 2619 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
2618 mFilterView->blockSignals(false); 2620 mFilterView->blockSignals(false);
2619 // We do it manually to avoid it being done twice by the above calls 2621 // We do it manually to avoid it being done twice by the above calls
2620 updateFilter(); 2622 updateFilter();
2621} 2623}
2622 2624
2623void CalendarView::writeFilterSettings(KConfig *config) 2625void CalendarView::writeFilterSettings(KConfig *config)
2624{ 2626{
2625 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 2627 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
2626 2628
2627 QStringList filterList; 2629 QStringList filterList;
2628 2630
2629 CalFilter *filter = mFilters.first(); 2631 CalFilter *filter = mFilters.first();
2630 while(filter) { 2632 while(filter) {
2631 // kdDebug() << " fn: " << filter->name() << endl; 2633 // kdDebug() << " fn: " << filter->name() << endl;
2632 filterList << filter->name(); 2634 filterList << filter->name();
2633 config->setGroup("Filter_" + filter->name().utf8()); 2635 config->setGroup("Filter_" + filter->name().utf8());
2634 config->writeEntry("Criteria",filter->criteria()); 2636 config->writeEntry("Criteria",filter->criteria());
2635 config->writeEntry("CategoryList",filter->categoryList()); 2637 config->writeEntry("CategoryList",filter->categoryList());
2636 filter = mFilters.next(); 2638 filter = mFilters.next();
2637 } 2639 }
2638 config->setGroup("General"); 2640 config->setGroup("General");
2639 config->writeEntry("CalendarFilters",filterList); 2641 config->writeEntry("CalendarFilters",filterList);
2640 2642
2641 config->setGroup("FilterView"); 2643 config->setGroup("FilterView");
2642 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 2644 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
2643 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 2645 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
2644} 2646}
2645 2647
2646 2648
2647void CalendarView::goToday() 2649void CalendarView::goToday()
2648{ 2650{
2649 if ( mViewManager->currentView()->isMonthView() ) 2651 if ( mViewManager->currentView()->isMonthView() )
2650 mNavigator->selectTodayMonth(); 2652 mNavigator->selectTodayMonth();
2651 else 2653 else
2652 mNavigator->selectToday(); 2654 mNavigator->selectToday();
2653} 2655}
2654 2656
2655void CalendarView::goNext() 2657void CalendarView::goNext()
2656{ 2658{
2657 mNavigator->selectNext(); 2659 mNavigator->selectNext();
2658} 2660}
2659 2661
2660void CalendarView::goPrevious() 2662void CalendarView::goPrevious()
2661{ 2663{
2662 mNavigator->selectPrevious(); 2664 mNavigator->selectPrevious();
2663} 2665}
2664void CalendarView::goNextMonth() 2666void CalendarView::goNextMonth()
2665{ 2667{
2666 mNavigator->selectNextMonth(); 2668 mNavigator->selectNextMonth();
2667} 2669}
2668 2670
2669void CalendarView::goPreviousMonth() 2671void CalendarView::goPreviousMonth()
2670{ 2672{
2671 mNavigator->selectPreviousMonth(); 2673 mNavigator->selectPreviousMonth();
2672} 2674}
2673 2675
2674void CalendarView::updateConfig() 2676void CalendarView::updateConfig()
2675{ 2677{
2676 if ( KOPrefs::instance()->mUseAppColors ) 2678 if ( KOPrefs::instance()->mUseAppColors )
2677 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 2679 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
2678 emit configChanged(); 2680 emit configChanged();
2679 mTodoList->updateConfig(); 2681 mTodoList->updateConfig();
2680 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 2682 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
2681 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2683 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2682 // To make the "fill window" configurations work 2684 // To make the "fill window" configurations work
2683 //mViewManager->raiseCurrentView(); 2685 //mViewManager->raiseCurrentView();
2684} 2686}
2685 2687
2686 2688
2687void CalendarView::eventChanged(Event *event) 2689void CalendarView::eventChanged(Event *event)
2688{ 2690{
2689 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2691 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2690 //updateUnmanagedViews(); 2692 //updateUnmanagedViews();
2691} 2693}
2692 2694
2693void CalendarView::eventAdded(Event *event) 2695void CalendarView::eventAdded(Event *event)
2694{ 2696{
2695 changeEventDisplay(event,KOGlobals::EVENTADDED); 2697 changeEventDisplay(event,KOGlobals::EVENTADDED);
2696} 2698}
2697 2699
2698void CalendarView::eventToBeDeleted(Event *) 2700void CalendarView::eventToBeDeleted(Event *)
2699{ 2701{
2700 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2702 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2701} 2703}
2702 2704
2703void CalendarView::eventDeleted() 2705void CalendarView::eventDeleted()
2704{ 2706{
2705 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2707 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2706} 2708}
2707void CalendarView::changeTodoDisplay(Todo *which, int action) 2709void CalendarView::changeTodoDisplay(Todo *which, int action)
2708{ 2710{
2709 changeIncidenceDisplay((Incidence *)which, action); 2711 changeIncidenceDisplay((Incidence *)which, action);
2710 mDateNavigator->updateView(); //LR 2712 mDateNavigator->updateView(); //LR
2711 //mDialogManager->updateSearchDialog(); 2713 //mDialogManager->updateSearchDialog();
2712 2714
2713 if (which) { 2715 if (which) {
2714 mViewManager->updateWNview(); 2716 mViewManager->updateWNview();
2715 //mTodoList->updateView(); 2717 //mTodoList->updateView();
2716 } 2718 }
2717 2719
2718} 2720}
2719 2721
2720void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2722void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2721{ 2723{
2722 updateUnmanagedViews(); 2724 updateUnmanagedViews();
2723 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2725 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2724 if ( action == KOGlobals::EVENTDELETED ) { //delete 2726 if ( action == KOGlobals::EVENTDELETED ) { //delete
2725 mCalendar->checkAlarmForIncidence( 0, true ); 2727 mCalendar->checkAlarmForIncidence( 0, true );
2726 if ( mEventViewerDialog ) 2728 if ( mEventViewerDialog )
2727 mEventViewerDialog->hide(); 2729 mEventViewerDialog->hide();
2728 } 2730 }
2729 else 2731 else
2730 mCalendar->checkAlarmForIncidence( which , false ); 2732 mCalendar->checkAlarmForIncidence( which , false );
2731} 2733}
2732 2734
2733// most of the changeEventDisplays() right now just call the view's 2735// most of the changeEventDisplays() right now just call the view's
2734// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2736// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2735void CalendarView::changeEventDisplay(Event *which, int action) 2737void CalendarView::changeEventDisplay(Event *which, int action)
2736{ 2738{
2737 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2739 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2738 changeIncidenceDisplay((Incidence *)which, action); 2740 changeIncidenceDisplay((Incidence *)which, action);
2739 static bool clearallviews = false; 2741 static bool clearallviews = false;
2740 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2742 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2741 if ( clearallviews ) { 2743 if ( clearallviews ) {
2742 clearAllViews(); 2744 clearAllViews();
2743 clearallviews = false; 2745 clearallviews = false;
2744 } 2746 }
2745 return; 2747 return;
2746 } 2748 }
2747 clearallviews = true; 2749 clearallviews = true;
2748 mDateNavigator->updateView(); 2750 mDateNavigator->updateView();
2749 //mDialogManager->updateSearchDialog(); 2751 //mDialogManager->updateSearchDialog();
2750 if (which) { 2752 if (which) {
2751 // If there is an event view visible update the display 2753 // If there is an event view visible update the display
2752 mViewManager->currentView()->changeEventDisplay(which,action); 2754 mViewManager->currentView()->changeEventDisplay(which,action);
2753 // TODO: check, if update needed 2755 // TODO: check, if update needed
2754 // if (which->getTodoStatus()) { 2756 // if (which->getTodoStatus()) {
2755 mTodoList->updateView(); 2757 mTodoList->updateView();
2756 if ( action != KOGlobals::EVENTDELETED ) { 2758 if ( action != KOGlobals::EVENTDELETED ) {
2757 mConflictingEvent = which ; 2759 mConflictingEvent = which ;
2758 QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) ); 2760 QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) );
2759 } 2761 }
2760 // } 2762 // }
2761 } else { 2763 } else {
2762 mViewManager->currentView()->updateView(); 2764 mViewManager->currentView()->updateView();
2763 } 2765 }
2764} 2766}
2765void CalendarView::checkConflictForEvent() 2767void CalendarView::checkConflictForEvent()
2766{ 2768{
2767 2769
2768 if (!KOPrefs::instance()->mConfirm) 2770 if (!KOPrefs::instance()->mConfirm)
2769 return; 2771 return;
2770 if ( ! mConflictingEvent ) return; 2772 if ( ! mConflictingEvent ) return;
2771 if ( mConflictingEvent->isHoliday() || mConflictingEvent->isBirthday() || mConflictingEvent->isAnniversary() ) { 2773 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
2772 mConflictingEvent = 0;
2773 return;
2774 }
2775 QPtrList<Event> testlist = mCalendar->events(); 2774 QPtrList<Event> testlist = mCalendar->events();
2776 Event * test = testlist.first(); 2775 Event * test = testlist.first();
2777 QDateTime conflict; 2776 QDateTime conflict;
2778 QDateTime retVal; 2777 QDateTime retVal;
2779 bool found = false; 2778 bool found = false;
2780 Event * cE = 0; 2779 Event * cE = 0;
2781 QDateTime current = QDateTime::currentDateTime(); 2780 QDateTime current = QDateTime::currentDateTime();
2782 while ( test ) { 2781 while ( test ) {
2782 qApp->processEvents();
2783 if ( !test->doesFloat() ) { 2783 if ( !test->doesFloat() ) {
2784 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) { 2784 if ( mConflictingEvent->isOverlapping ( test, &retVal, &current ) ) {
2785 if ( ! found ) { 2785 if ( ! found ) {
2786 conflict = retVal; 2786 conflict = retVal;
2787 cE = test; 2787 cE = test;
2788 } else { 2788 } else {
2789 if ( retVal < conflict ) { 2789 if ( retVal < conflict ) {
2790 conflict = retVal; 2790 conflict = retVal;
2791 cE = test; 2791 cE = test;
2792 } 2792 }
2793 } 2793 }
2794 found = true; 2794 found = true;
2795 } 2795 }
2796 } 2796 }
2797 test = testlist.next(); 2797 test = testlist.next();
2798 } 2798 }
2799 if ( found ) { 2799 if ( found ) {
2800 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ; 2800 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( mConflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ;
2801 qApp->processEvents(); 2801 qApp->processEvents();
2802 int km = KMessageBox::warningContinueCancel(this,mess, 2802 int km = KMessageBox::warningContinueCancel(this,mess,
2803 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); 2803 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!"));
2804 if ( km != KMessageBox::Continue ) 2804 if ( km != KMessageBox::Continue )
2805 return; 2805 return;
2806 2806
2807 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 2807 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
2808 mViewManager->showDayView(); 2808 mViewManager->showDayView();
2809 mNavigator->slotDaySelect( conflict.date() ); 2809 mNavigator->slotDaySelect( conflict.date() );
2810 int hour = conflict.time().hour(); 2810 int hour = conflict.time().hour();
2811 mViewManager->agendaView()->setStartHour( hour ); 2811 mViewManager->agendaView()->setStartHour( hour );
2812 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); 2812 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) );
2813 } 2813 }
2814 mConflictingEvent = 0; 2814 mConflictingEvent = 0;
2815 return; 2815 return;
2816 2816
2817} 2817}
2818 2818
2819void CalendarView::updateTodoViews() 2819void CalendarView::updateTodoViews()
2820{ 2820{
2821 mTodoList->updateView(); 2821 mTodoList->updateView();
2822 mViewManager->currentView()->updateView(); 2822 mViewManager->currentView()->updateView();
2823 2823
2824} 2824}
2825 2825
2826 2826
2827 2827
2828void CalendarView::clearAllViews() 2828void CalendarView::clearAllViews()
2829{ 2829{
2830 mTodoList->clearList(); 2830 mTodoList->clearList();
2831 mViewManager->clearAllViews(); 2831 mViewManager->clearAllViews();
2832 SearchDialog * sd = mDialogManager->getSearchDialog(); 2832 SearchDialog * sd = mDialogManager->getSearchDialog();
2833 if ( sd ) { 2833 if ( sd ) {
2834 KOListView* kol = sd->listview(); 2834 KOListView* kol = sd->listview();
2835 if ( kol ) 2835 if ( kol )
2836 kol->clearList(); 2836 kol->clearList();
2837 } 2837 }
2838} 2838}
2839void CalendarView::updateView() 2839void CalendarView::updateView()
2840{ 2840{
2841 static bool clearallviews = false; 2841 static bool clearallviews = false;
2842 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 2842 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
2843 if ( clearallviews ) { 2843 if ( clearallviews ) {
2844 clearAllViews(); 2844 clearAllViews();
2845 clearallviews = false; 2845 clearallviews = false;
2846 } 2846 }
2847 return; 2847 return;
2848 } 2848 }
2849 clearallviews = true; 2849 clearallviews = true;
2850 DateList tmpList = mNavigator->selectedDates(); 2850 DateList tmpList = mNavigator->selectedDates();
2851 2851
2852 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2852 if ( KOPrefs::instance()->mHideNonStartedTodos )
2853 mTodoList->updateView(); 2853 mTodoList->updateView();
2854 // We assume that the navigator only selects consecutive days. 2854 // We assume that the navigator only selects consecutive days.
2855 updateView( tmpList.first(), tmpList.last() ); 2855 updateView( tmpList.first(), tmpList.last() );
2856} 2856}
2857 2857
2858void CalendarView::updateUnmanagedViews() 2858void CalendarView::updateUnmanagedViews()
2859{ 2859{
2860 mDateNavigator->updateDayMatrix(); 2860 mDateNavigator->updateDayMatrix();
2861} 2861}
2862 2862
2863int CalendarView::msgItemDelete(const QString name) 2863int CalendarView::msgItemDelete(const QString name)
2864{ 2864{
2865 return KMessageBox::warningContinueCancel(this,name +"\n\n"+ 2865 return KMessageBox::warningContinueCancel(this,name +"\n\n"+
2866 i18n("This item will be\npermanently deleted."), 2866 i18n("This item will be\npermanently deleted."),
2867 i18n("KO/Pi Confirmation"),i18n("Delete")); 2867 i18n("KO/Pi Confirmation"),i18n("Delete"));
2868} 2868}
2869 2869
2870 2870
2871void CalendarView::edit_cut() 2871void CalendarView::edit_cut()
2872{ 2872{
2873 Event *anEvent=0; 2873 Event *anEvent=0;
2874 2874
2875 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2875 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2876 2876
2877 if (mViewManager->currentView()->isEventView()) { 2877 if (mViewManager->currentView()->isEventView()) {
2878 if ( incidence && incidence->typeID() == eventID ) { 2878 if ( incidence && incidence->typeID() == eventID ) {
2879 anEvent = static_cast<Event *>(incidence); 2879 anEvent = static_cast<Event *>(incidence);
2880 } 2880 }
2881 } 2881 }
2882 2882
2883 if (!anEvent) { 2883 if (!anEvent) {
2884 KNotifyClient::beep(); 2884 KNotifyClient::beep();
2885 return; 2885 return;
2886 } 2886 }
2887 DndFactory factory( mCalendar ); 2887 DndFactory factory( mCalendar );
2888 factory.cutIncidence(anEvent); 2888 factory.cutIncidence(anEvent);
2889 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2889 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2890} 2890}
2891 2891
2892void CalendarView::edit_copy() 2892void CalendarView::edit_copy()
2893{ 2893{
2894 Event *anEvent=0; 2894 Event *anEvent=0;
2895 2895
2896 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2896 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2897 2897
2898 if (mViewManager->currentView()->isEventView()) { 2898 if (mViewManager->currentView()->isEventView()) {
2899 if ( incidence && incidence->typeID() == eventID ) { 2899 if ( incidence && incidence->typeID() == eventID ) {
2900 anEvent = static_cast<Event *>(incidence); 2900 anEvent = static_cast<Event *>(incidence);
2901 } 2901 }
2902 } 2902 }
2903 2903
2904 if (!anEvent) { 2904 if (!anEvent) {
2905 KNotifyClient::beep(); 2905 KNotifyClient::beep();
2906 return; 2906 return;
2907 } 2907 }
2908 DndFactory factory( mCalendar ); 2908 DndFactory factory( mCalendar );
2909 factory.copyIncidence(anEvent); 2909 factory.copyIncidence(anEvent);
2910} 2910}
2911 2911
2912void CalendarView::edit_paste() 2912void CalendarView::edit_paste()
2913{ 2913{
2914 QDate date = mNavigator->selectedDates().first(); 2914 QDate date = mNavigator->selectedDates().first();
2915 2915
2916 DndFactory factory( mCalendar ); 2916 DndFactory factory( mCalendar );
2917 Event *pastedEvent = (Event *)factory.pasteIncidence( date ); 2917 Event *pastedEvent = (Event *)factory.pasteIncidence( date );
2918 2918
2919 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2919 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2920} 2920}
2921void CalendarView::edit_global_options() 2921void CalendarView::edit_global_options()
2922{ 2922{
2923 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId; 2923 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId;
2924 emit save(); 2924 emit save();
2925 emit saveStopTimer(); 2925 emit saveStopTimer();
2926 mDialogManager->showGlobalOptionsDialog(); 2926 mDialogManager->showGlobalOptionsDialog();
2927 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) { 2927 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) {
2928 emit saveStopTimer(); 2928 emit saveStopTimer();
2929 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"), 2929 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"),
2930 i18n("Timezone settings"),i18n("Reload"))) { 2930 i18n("Timezone settings"),i18n("Reload"))) {
2931 qDebug("KO: TZ reload cancelled "); 2931 qDebug("KO: TZ reload cancelled ");
2932 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2932 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2933 return; 2933 return;
2934 } 2934 }
2935 qDebug("KO: Timezone change "); 2935 qDebug("KO: Timezone change ");
2936 loadCalendars(); 2936 loadCalendars();
2937 setModified(true); 2937 setModified(true);
2938 } 2938 }
2939 else 2939 else
2940 qDebug("KO: No tz change "); 2940 qDebug("KO: No tz change ");
2941} 2941}
2942void CalendarView::edit_options() 2942void CalendarView::edit_options()
2943{ 2943{
2944 mDialogManager->showOptionsDialog(); 2944 mDialogManager->showOptionsDialog();
2945} 2945}
2946 2946
2947 2947
2948void CalendarView::slotSelectPickerDate( QDate d) 2948void CalendarView::slotSelectPickerDate( QDate d)
2949{ 2949{
2950 mDateFrame->hide(); 2950 mDateFrame->hide();
2951 if ( mDatePickerMode == 1 ) { 2951 if ( mDatePickerMode == 1 ) {
2952 mNavigator->slotDaySelect( d ); 2952 mNavigator->slotDaySelect( d );
2953 } else if ( mDatePickerMode == 2 ) { 2953 } else if ( mDatePickerMode == 2 ) {
2954 if ( mMoveIncidence->typeID() == todoID ) { 2954 if ( mMoveIncidence->typeID() == todoID ) {
2955 Todo * to = (Todo *) mMoveIncidence; 2955 Todo * to = (Todo *) mMoveIncidence;
2956 QTime tim; 2956 QTime tim;
2957 int len = 0; 2957 int len = 0;
2958 if ( to->hasStartDate() && to->hasDueDate() ) 2958 if ( to->hasStartDate() && to->hasDueDate() )
2959 len = to->dtStart().secsTo( to->dtDue()); 2959 len = to->dtStart().secsTo( to->dtDue());
2960 if ( to->hasDueDate() ) 2960 if ( to->hasDueDate() )
2961 tim = to->dtDue().time(); 2961 tim = to->dtDue().time();
2962 else { 2962 else {
2963 tim = QTime ( 0,0,0 ); 2963 tim = QTime ( 0,0,0 );
2964 to->setFloats( true ); 2964 to->setFloats( true );
2965 to->setHasDueDate( true ); 2965 to->setHasDueDate( true );
2966 } 2966 }
2967 QDateTime dt ( d,tim ); 2967 QDateTime dt ( d,tim );
2968 to->setDtDue( dt ); 2968 to->setDtDue( dt );
2969 2969
2970 if ( to->hasStartDate() ) { 2970 if ( to->hasStartDate() ) {
2971 if ( len>0 ) 2971 if ( len>0 )
2972 to->setDtStart(to->dtDue().addSecs( -len )); 2972 to->setDtStart(to->dtDue().addSecs( -len ));
2973 else 2973 else
2974 if (to->dtStart() > to->dtDue() ) 2974 if (to->dtStart() > to->dtDue() )