summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
authorzautrix <zautrix>2005-08-17 22:44:12 (UTC)
committer zautrix <zautrix>2005-08-17 22:44:12 (UTC)
commitbd0f0feb2e1af8a346dc724c81f31214c52128e4 (patch) (unidiff)
tree7234e97f485901026e37a2deab734e9d431002f2 /korganizer/calendarview.cpp
parent671857b232224314ad7720ad4bc037758a90fa4b (diff)
downloadkdepimpi-bd0f0feb2e1af8a346dc724c81f31214c52128e4.zip
kdepimpi-bd0f0feb2e1af8a346dc724c81f31214c52128e4.tar.gz
kdepimpi-bd0f0feb2e1af8a346dc724c81f31214c52128e4.tar.bz2
conflict settings
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp73
1 files changed, 56 insertions, 17 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 26323b1..898da6c 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -3038,3 +3038,12 @@ void CalendarView::changeEventDisplay(Event *which, int action)
3038#endif 3038#endif
3039 QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) ); 3039 bool checkC = false;
3040 if ( mConflictingEvent->doesFloat() ) {
3041 checkC = KOPrefs::instance()->mCheckConflictsAllDayAllDay
3042 || KOPrefs::instance()->mCheckConflictsAllDayNonAD;
3043 } else {
3044 checkC = KOPrefs::instance()->mCheckConflictsNonADAllDay
3045 || KOPrefs::instance()->mCheckConflictsNonADNonAD;
3046 }
3047 if ( checkC )
3048 QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) );
3040 } 3049 }
@@ -3057,2 +3066,17 @@ void CalendarView::checkConflictForEvent()
3057 } 3066 }
3067 CalFilter *filterIN = 0;
3068 CalFilter *filterALL = 0;
3069 CalFilter *filter = mFilters.first();
3070 while(filter) {
3071 if ( filter->name() == KOPrefs::instance()->mFilterConflictEditItem)
3072 filterIN = filter;
3073 if ( filter->name() == KOPrefs::instance()->mFilterConflictAllItem )
3074 filterALL = filter;
3075 filter = mFilters.next();
3076 }
3077 if ( filterIN ) {
3078 if ( !filterIN->filterCalendarItem( conflictingEvent ) ) {
3079 return;
3080 }
3081 }
3058 QPtrList<Event> testlist = mCalendar->events(); 3082 QPtrList<Event> testlist = mCalendar->events();
@@ -3063,2 +3087,8 @@ void CalendarView::checkConflictForEvent()
3063 Event * cE = 0; 3087 Event * cE = 0;
3088 bool chAD = KOPrefs::instance()->mCheckConflictsAllDayAllDay;
3089 bool chNad = KOPrefs::instance()->mCheckConflictsAllDayNonAD;
3090 if ( !conflictingEvent->doesFloat() ) {
3091 chAD = KOPrefs::instance()->mCheckConflictsNonADAllDay;
3092 chNad = KOPrefs::instance()->mCheckConflictsNonADNonAD;
3093 }
3064 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") ); 3094 topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") );
@@ -3066,19 +3096,28 @@ void CalendarView::checkConflictForEvent()
3066 qApp->processEvents(); 3096 qApp->processEvents();
3067 bool skip = false; 3097 bool skip = ( test->doesFloat() && !chAD ) || ( !test->doesFloat() && !chNad );
3068 if ( found ) 3098 if ( !skip ) {
3069 skip = !test->matchTime( &current, &conflict ); 3099 if ( filterALL ) {
3070 else 3100 if ( !filterALL->filterCalendarItem( test ) ) {
3071 skip = !test->matchTime( &current, 0 ); 3101 skip = true;
3072 if ( !skip && !test->doesFloat() ) { 3102 }
3073 if ( conflictingEvent->isOverlapping ( test, &retVal, &current ) ) { 3103 }
3074 if ( ! found ) { 3104 if ( !skip ) {
3075 conflict = retVal; 3105 if ( found )
3076 cE = test; 3106 skip = !test->matchTime( &current, &conflict );
3077 } else { 3107 else
3078 if ( retVal < conflict ) { 3108 skip = !test->matchTime( &current, 0 );
3079 conflict = retVal; 3109 if ( !skip ) {
3080 cE = test; 3110 if ( conflictingEvent->isOverlapping ( test, &retVal, &current ) ) {
3111 if ( ! found ) {
3112 conflict = retVal;
3113 cE = test;
3114 } else {
3115 if ( retVal < conflict ) {
3116 conflict = retVal;
3117 cE = test;
3118 }
3119 }
3120 found = true;
3081 } 3121 }
3082 } 3122 }
3083 found = true;
3084 } 3123 }
@@ -3092,3 +3131,3 @@ void CalendarView::checkConflictForEvent()
3092 int km = KMessageBox::warningContinueCancel(this,mess, 3131 int km = KMessageBox::warningContinueCancel(this,mess,
3093 i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); 3132 i18n("KO/Pi Conflict detected"),i18n("Show date"),i18n("No problem!"));
3094 if ( km != KMessageBox::Continue ) { 3133 if ( km != KMessageBox::Continue ) {