-rw-r--r-- | korganizer/calendarview.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 65750af..426e8f9 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -652,66 +652,81 @@ CalendarView::~CalendarView() | |||
652 | delete mStorage; | 652 | delete mStorage; |
653 | delete mDateFrame ; | 653 | delete mDateFrame ; |
654 | delete mEventViewerDialog; | 654 | delete mEventViewerDialog; |
655 | //kdDebug() << "~CalendarView() done" << endl; | 655 | //kdDebug() << "~CalendarView() done" << endl; |
656 | } | 656 | } |
657 | void CalendarView::nextConflict( bool all, bool allday ) | 657 | void CalendarView::nextConflict( bool all, bool allday ) |
658 | { | 658 | { |
659 | 659 | ||
660 | QPtrList<Event> testlist = mCalendar->events(); | 660 | QPtrList<Event> testlist = mCalendar->events(); |
661 | Event * test = testlist.first(); | 661 | Event * test = testlist.first(); |
662 | while ( test ) { | 662 | while ( test ) { |
663 | test->setTagged( false ); | 663 | test->setTagged( false ); |
664 | test = testlist.next(); | ||
664 | } | 665 | } |
665 | QDateTime startDT = QDateTime (mNavigator->selectedDates().first().addDays(1), QTime ( 0,0,0)); | 666 | QDateTime startDT = QDateTime (mNavigator->selectedDates().first().addDays(1), QTime ( 0,0,0)); |
666 | QDateTime conflict; | 667 | QDateTime conflict; |
667 | QDateTime retVal; | 668 | QDateTime retVal; |
668 | bool found = false; | 669 | bool found = false; |
669 | Event * cE = 0; | 670 | Event * cE = 0; |
671 | Event * cE2 = 0; | ||
670 | QPtrList<Event> testlist2 = testlist; | 672 | QPtrList<Event> testlist2 = testlist; |
673 | test = testlist.first(); | ||
674 | bool skip = false; | ||
671 | while ( test ) { | 675 | while ( test ) { |
676 | skip = false; | ||
677 | if ( !all ) skip = ( allday != test->doesFloat() ); | ||
678 | if ( !skip ) { | ||
672 | Event * test2 = testlist2.first(); | 679 | Event * test2 = testlist2.first(); |
673 | while ( test2 ) { | 680 | while ( test2 ) { |
681 | skip = false; | ||
682 | if ( !all ) skip = ( allday != test2->doesFloat() ); | ||
683 | if ( !skip ) { | ||
674 | if ( !test2->isTagged() ) { | 684 | if ( !test2->isTagged() ) { |
675 | if ( test->isOverlapping ( test2, &retVal, true ) ) { | 685 | if ( test->isOverlapping ( test2, &retVal, &startDT ) ) { |
686 | //qDebug("overlap "); | ||
676 | if ( ! found ) { | 687 | if ( ! found ) { |
677 | if ( retVal >= startDT ) { | 688 | if ( retVal >= startDT ) { |
678 | conflict = retVal; | 689 | conflict = retVal; |
679 | cE = test; | 690 | cE = test; |
691 | cE2 = test2; | ||
680 | found = true; | 692 | found = true; |
681 | } | 693 | } |
682 | } else { | 694 | } else { |
683 | if ( retVal >= startDT && retVal < conflict ) { | 695 | if ( retVal >= startDT && retVal < conflict ) { |
684 | conflict = retVal; | 696 | conflict = retVal; |
685 | cE = test; | 697 | cE = test; |
698 | cE2 = test2; | ||
699 | } | ||
686 | } | 700 | } |
687 | } | 701 | } |
688 | } | 702 | } |
689 | } | 703 | } |
690 | test2 = testlist2.next(); | 704 | test2 = testlist2.next(); |
691 | } | 705 | } |
706 | } | ||
692 | test->setTagged( true ); | 707 | test->setTagged( true ); |
693 | test = testlist.next(); | 708 | test = testlist.next(); |
694 | } | 709 | } |
695 | if ( found ) { | 710 | if ( found ) { |
696 | if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) | 711 | if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) |
697 | mViewManager->showDayView(); | 712 | mViewManager->showDayView(); |
698 | mNavigator->slotDaySelect( conflict.date() ); | 713 | mNavigator->slotDaySelect( conflict.date() ); |
699 | int hour = conflict.time().hour(); | 714 | int hour = conflict.time().hour(); |
700 | mViewManager->agendaView()->setStartHour( hour ); | 715 | mViewManager->agendaView()->setStartHour( hour ); |
701 | topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( mConflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); | 716 | topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( cE->summary().left( 20 ) ).arg( cE2->summary().left( 20 ) ) ); |
702 | return; | 717 | return; |
703 | } | 718 | } |
704 | 719 | ||
705 | topLevelWidget()->setCaption( i18n("No conflict found within the next two years") ); | 720 | topLevelWidget()->setCaption( i18n("No conflict found") ); |
706 | qDebug("No conflict found "); | 721 | qDebug("No conflict found "); |
707 | return; | 722 | return; |
708 | 723 | ||
709 | 724 | ||
710 | 725 | ||
711 | 726 | ||
712 | 727 | ||
713 | #if 0 | 728 | #if 0 |
714 | 729 | ||
715 | 730 | ||
716 | QDate end = start.addDays( 365*2); | 731 | QDate end = start.addDays( 365*2); |
717 | while ( start < end ) { | 732 | while ( start < end ) { |
@@ -2785,27 +2800,28 @@ void CalendarView::checkConflictForEvent() | |||
2785 | return; | 2800 | return; |
2786 | if ( ! mConflictingEvent ) return; | 2801 | if ( ! mConflictingEvent ) return; |
2787 | if ( mConflictingEvent->doesFloat() ) { | 2802 | if ( mConflictingEvent->doesFloat() ) { |
2788 | mConflictingEvent = 0; | 2803 | mConflictingEvent = 0; |
2789 | return; | 2804 | return; |
2790 | } | 2805 | } |
2791 | QPtrList<Event> testlist = mCalendar->events(); | 2806 | QPtrList<Event> testlist = mCalendar->events(); |
2792 | Event * test = testlist.first(); | 2807 | Event * test = testlist.first(); |
2793 | QDateTime conflict; | 2808 | QDateTime conflict; |
2794 | QDateTime retVal; | 2809 | QDateTime retVal; |
2795 | bool found = false; | 2810 | bool found = false; |
2796 | Event * cE = 0; | 2811 | Event * cE = 0; |
2812 | QDateTime current = QDateTime::currentDateTime(); | ||
2797 | while ( test ) { | 2813 | while ( test ) { |
2798 | if ( !test->doesFloat() ) { | 2814 | if ( !test->doesFloat() ) { |
2799 | if ( mConflictingEvent->isOverlapping ( test, &retVal, true ) ) { | 2815 | if ( mConflictingEvent->isOverlapping ( test, &retVal, ¤t ) ) { |
2800 | if ( ! found ) { | 2816 | if ( ! found ) { |
2801 | conflict = retVal; | 2817 | conflict = retVal; |
2802 | cE = test; | 2818 | cE = test; |
2803 | } else { | 2819 | } else { |
2804 | if ( retVal < conflict ) { | 2820 | if ( retVal < conflict ) { |
2805 | conflict = retVal; | 2821 | conflict = retVal; |
2806 | cE = test; | 2822 | cE = test; |
2807 | } | 2823 | } |
2808 | } | 2824 | } |
2809 | found = true; | 2825 | found = true; |
2810 | } | 2826 | } |
2811 | } | 2827 | } |