summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp73
-rw-r--r--korganizer/koprefs.cpp10
-rw-r--r--korganizer/koprefs.h9
-rw-r--r--korganizer/koprefsdialog.cpp52
-rw-r--r--korganizer/koprefsdialog.h2
5 files changed, 128 insertions, 18 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 26323b1..898da6c 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -3015,103 +3015,142 @@ void CalendarView::changeEventDisplay(Event *which, int action)
3015 changeIncidenceDisplay((Incidence *)which, action); 3015 changeIncidenceDisplay((Incidence *)which, action);
3016 static bool clearallviews = false; 3016 static bool clearallviews = false;
3017 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) { 3017 if ( KOPrefs::instance()->mGlobalUpdateDisabled ) {
3018 if ( clearallviews ) { 3018 if ( clearallviews ) {
3019 clearAllViews(); 3019 clearAllViews();
3020 clearallviews = false; 3020 clearallviews = false;
3021 } 3021 }
3022 return; 3022 return;
3023 } 3023 }
3024 clearallviews = true; 3024 clearallviews = true;
3025 mDateNavigator->updateView(); 3025 mDateNavigator->updateView();
3026 //mDialogManager->updateSearchDialog(); 3026 //mDialogManager->updateSearchDialog();
3027 if (which) { 3027 if (which) {
3028 // If there is an event view visible update the display 3028 // If there is an event view visible update the display
3029 mViewManager->currentView()->changeEventDisplay(which,action); 3029 mViewManager->currentView()->changeEventDisplay(which,action);
3030 // TODO: check, if update needed 3030 // TODO: check, if update needed
3031 // if (which->getTodoStatus()) { 3031 // if (which->getTodoStatus()) {
3032 mTodoList->updateView(); 3032 mTodoList->updateView();
3033 if ( action != KOGlobals::EVENTDELETED ) { 3033 if ( action != KOGlobals::EVENTDELETED ) {
3034 mConflictingEvent = which ; 3034 mConflictingEvent = which ;
3035 int time = 1000; 3035 int time = 1000;
3036#ifdef DESKTOP_VERSION 3036#ifdef DESKTOP_VERSION
3037 time = 500; 3037 time = 500;
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 }
3041 // } 3050 // }
3042 } else { 3051 } else {
3043 mViewManager->currentView()->updateView(); 3052 mViewManager->currentView()->updateView();
3044 } 3053 }
3045} 3054}
3046void CalendarView::checkConflictForEvent() 3055void CalendarView::checkConflictForEvent()
3047{ 3056{
3048 3057
3049 if (!KOPrefs::instance()->mConfirm) 3058 if (!KOPrefs::instance()->mConfirm)
3050 return; 3059 return;
3051 if ( ! mConflictingEvent ) return; 3060 if ( ! mConflictingEvent ) return;
3052 Event * conflictingEvent = mConflictingEvent; 3061 Event * conflictingEvent = mConflictingEvent;
3053 mConflictingEvent = 0; 3062 mConflictingEvent = 0;
3054 QDateTime current = QDateTime::currentDateTime(); 3063 QDateTime current = QDateTime::currentDateTime();
3055 if ( ! conflictingEvent->matchTime( &current, 0 ) ) { 3064 if ( ! conflictingEvent->matchTime( &current, 0 ) ) {
3056 return; 3065 return;
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();
3059 Event * test = testlist.first(); 3083 Event * test = testlist.first();
3060 QDateTime conflict; 3084 QDateTime conflict;
3061 QDateTime retVal; 3085 QDateTime retVal;
3062 bool found = false; 3086 bool found = false;
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") );
3065 while ( test ) { 3095 while ( test ) {
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 }
3085 } 3124 }
3086 test = testlist.next(); 3125 test = testlist.next();
3087 } 3126 }
3088 topLevelWidget()->setCaption( i18n("KO/Pi") ); 3127 topLevelWidget()->setCaption( i18n("KO/Pi") );
3089 if ( found ) { 3128 if ( found ) {
3090 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( conflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ; 3129 QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( conflictingEvent->summary(),0 ) ).arg( KGlobal::formatMessage ( cE->summary(),0 )).arg(KGlobal::locale()->formatDate(conflict.date()) ) ;
3091 qApp->processEvents(); 3130 qApp->processEvents();
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 ) {
3095 return; 3134 return;
3096 } 3135 }
3097 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) 3136 if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 )
3098 mViewManager->showDayView(); 3137 mViewManager->showDayView();
3099 mNavigator->slotDaySelect( conflict.date() ); 3138 mNavigator->slotDaySelect( conflict.date() );
3100 int hour = conflict.time().hour(); 3139 int hour = conflict.time().hour();
3101 mViewManager->agendaView()->setStartHour( hour ); 3140 mViewManager->agendaView()->setStartHour( hour );
3102 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( conflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) ); 3141 topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( conflictingEvent->summary().left( 20 ) ).arg( cE->summary().left( 20 ) ) );
3103 } else 3142 } else
3104 topLevelWidget()->setCaption( i18n("No conflict found") ); 3143 topLevelWidget()->setCaption( i18n("No conflict found") );
3105 return; 3144 return;
3106 3145
3107} 3146}
3108 3147
3109void CalendarView::updateTodoViews() 3148void CalendarView::updateTodoViews()
3110{ 3149{
3111 mTodoList->updateView(); 3150 mTodoList->updateView();
3112 mViewManager->currentView()->updateView(); 3151 mViewManager->currentView()->updateView();
3113 3152
3114} 3153}
3115 3154
3116 3155
3117 3156
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 77f572c..571ca11 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -209,49 +209,57 @@ KOPrefs::KOPrefs() :
209 209
210 210
211 KPrefs::setCurrentGroup("Colors"); 211 KPrefs::setCurrentGroup("Colors");
212 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 212 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
213 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 213 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
214 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 214 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
215 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) ); 215 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) );
216 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 216 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
217 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 217 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
218 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 218 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
219 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 219 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
220 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor); 220 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor);
221 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 221 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
222 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 222 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
223 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 223 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
224 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 224 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
225 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 225 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
226 addItemBool("MonthViewWeek",&mMonthViewWeek,false); 226 addItemBool("MonthViewWeek",&mMonthViewWeek,false);
227 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 227 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
228 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 228 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
229 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 229 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
230 addItemBool("UseAppColors",&mUseAppColors,false); 230 addItemBool("UseAppColors",&mUseAppColors,false);
231 231
232 232
233 233 KPrefs::setCurrentGroup("Conflicts");
234 addItemBool("EnableAutoDetect",&mDetectConflicts,true);
235 addItemBool("CheckConflictsAllDayAllDay",&mCheckConflictsAllDayAllDay,false);
236 addItemBool("CheckConflictsAllDayNonAD",&mCheckConflictsAllDayNonAD,false);
237 addItemBool("CheckConflictsNonADAllDay",&mCheckConflictsNonADAllDay,false);
238 addItemBool("CheckConflictsNonADNonAD",&mCheckConflictsNonADNonAD,true);
239 addItemString("FilterConflictEditItem", &mFilterConflictEditItem ,"nofilter" );
240 addItemString("FilterConflictAllItem", &mFilterConflictAllItem ,"nofilter" );
241
234 KPrefs::setCurrentGroup("Views"); 242 KPrefs::setCurrentGroup("Views");
235 addItemBool("Block Popup Menu",&mBlockPopupMenu,false); 243 addItemBool("Block Popup Menu",&mBlockPopupMenu,false);
236 addItemBool("Show Date Navigator",&mShowDateNavigator,true); 244 addItemBool("Show Date Navigator",&mShowDateNavigator,true);
237 addItemInt("Hour Size",&mHourSize,8); 245 addItemInt("Hour Size",&mHourSize,8);
238 addItemBool("Show Daily Recurrences",&mDailyRecur,true); 246 addItemBool("Show Daily Recurrences",&mDailyRecur,true);
239 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); 247 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
240 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); 248 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
241 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); 249 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
242 addItemBool("ShowShortMonthName",&mMonthShowShort,false); 250 addItemBool("ShowShortMonthName",&mMonthShowShort,false);
243 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); 251 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true);
244 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true); 252 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true);
245#ifdef DESKTOP_VERION 253#ifdef DESKTOP_VERION
246 addItemBool("Enable ToolTips",&mEnableToolTips,true); 254 addItemBool("Enable ToolTips",&mEnableToolTips,true);
247#else 255#else
248 addItemBool("Enable ToolTips",&mEnableToolTips,false); 256 addItemBool("Enable ToolTips",&mEnableToolTips,false);
249#endif 257#endif
250 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); 258 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false);
251 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); 259 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false);
252 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); 260 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true);
253 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); 261 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true);
254 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true); 262 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true);
255 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); 263 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false);
256 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); 264 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false);
257 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); 265 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true);
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 9749ba3..576edf9 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -328,38 +328,47 @@ class KOPrefs : public KPimPrefs
328 int mAlarmPlayBeeps; 328 int mAlarmPlayBeeps;
329 int mAlarmSuspendTime; 329 int mAlarmSuspendTime;
330 int mAlarmSuspendCount; 330 int mAlarmSuspendCount;
331 int mAlarmBeepInterval; 331 int mAlarmBeepInterval;
332 int mOldLanguage; 332 int mOldLanguage;
333 int mOldLoadedLanguage; 333 int mOldLoadedLanguage;
334 334
335 335
336 QString mActiveSyncPort; 336 QString mActiveSyncPort;
337 QString mActiveSyncIP; 337 QString mActiveSyncIP;
338 338
339 // settings for eventviewer 339 // settings for eventviewer
340 bool mEVshowDetails; 340 bool mEVshowDetails;
341 bool mEVshowCreated; 341 bool mEVshowCreated;
342 bool mEVshowChanged; 342 bool mEVshowChanged;
343 bool mWTshowDetails; 343 bool mWTshowDetails;
344 bool mWTshowCreated; 344 bool mWTshowCreated;
345 bool mWTshowChanged; 345 bool mWTshowChanged;
346 346
347 int mCurrentDisplayedView; 347 int mCurrentDisplayedView;
348 QPtrList<KopiCalendarFile> mCalendars; 348 QPtrList<KopiCalendarFile> mCalendars;
349 int mNextAvailableCalendar; 349 int mNextAvailableCalendar;
350 bool mGlobalUpdateDisabled; 350 bool mGlobalUpdateDisabled;
351 351
352
353 bool mDetectConflicts;
354 bool mCheckConflictsAllDayAllDay;
355 bool mCheckConflictsAllDayNonAD;
356 bool mCheckConflictsNonADAllDay;
357 bool mCheckConflictsNonADNonAD;
358 QString mFilterConflictEditItem;
359 QString mFilterConflictAllItem;
360
352 private: 361 private:
353 QDict<QColor> mCategoryColors; 362 QDict<QColor> mCategoryColors;
354 QArray<KopiCalendarFile*> mDefCalColors; 363 QArray<KopiCalendarFile*> mDefCalColors;
355 QColor mDefaultCategoryColor; 364 QColor mDefaultCategoryColor;
356 365
357 QFont mDefaultTimeBarFont; 366 QFont mDefaultTimeBarFont;
358 QFont mDefaultViewFont; 367 QFont mDefaultViewFont;
359 QFont mDefaultMonthViewFont; 368 QFont mDefaultMonthViewFont;
360 369
361 QString mName; 370 QString mName;
362 QString mEmail; 371 QString mEmail;
363}; 372};
364 373
365#endif 374#endif
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index 9e2378a..bbdf508 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -901,48 +901,83 @@ dummy =
901 dummy = addWidBool(i18n("Details"), 901 dummy = addWidBool(i18n("Details"),
902 &(KOPrefs::instance()->mEVshowDetails),topFrame); 902 &(KOPrefs::instance()->mEVshowDetails),topFrame);
903 topLayout->addWidget(dummy->checkBox(),ii++,0); 903 topLayout->addWidget(dummy->checkBox(),ii++,0);
904 dummy = addWidBool(i18n("Created time"), 904 dummy = addWidBool(i18n("Created time"),
905 &(KOPrefs::instance()->mEVshowCreated),topFrame); 905 &(KOPrefs::instance()->mEVshowCreated),topFrame);
906 topLayout->addWidget(dummy->checkBox(),ii++,0); 906 topLayout->addWidget(dummy->checkBox(),ii++,0);
907 dummy = addWidBool(i18n("Last modified time"), 907 dummy = addWidBool(i18n("Last modified time"),
908 &(KOPrefs::instance()->mEVshowChanged),topFrame); 908 &(KOPrefs::instance()->mEVshowChanged),topFrame);
909 topLayout->addWidget(dummy->checkBox(),ii++,0); 909 topLayout->addWidget(dummy->checkBox(),ii++,0);
910 910
911 911
912 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 912 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
913 topLayout->addWidget(lab ,ii++,0); 913 topLayout->addWidget(lab ,ii++,0);
914 914
915 dummy = addWidBool(i18n("Details"), 915 dummy = addWidBool(i18n("Details"),
916 &(KOPrefs::instance()->mWTshowDetails),topFrame); 916 &(KOPrefs::instance()->mWTshowDetails),topFrame);
917 topLayout->addWidget(dummy->checkBox(),ii++,0); 917 topLayout->addWidget(dummy->checkBox(),ii++,0);
918 dummy = addWidBool(i18n("Created time"), 918 dummy = addWidBool(i18n("Created time"),
919 &(KOPrefs::instance()->mWTshowCreated),topFrame); 919 &(KOPrefs::instance()->mWTshowCreated),topFrame);
920 topLayout->addWidget(dummy->checkBox(),ii++,0); 920 topLayout->addWidget(dummy->checkBox(),ii++,0);
921 dummy = addWidBool(i18n("Last modified time"), 921 dummy = addWidBool(i18n("Last modified time"),
922 &(KOPrefs::instance()->mWTshowChanged),topFrame); 922 &(KOPrefs::instance()->mWTshowChanged),topFrame);
923 topLayout->addWidget(dummy->checkBox(),ii++,0); 923 topLayout->addWidget(dummy->checkBox(),ii++,0);
924 924
925 topFrame = addPage(i18n("Conflict detection"),0,0);
926
927 topLayout = new QGridLayout(topFrame,2,1);
928 topLayout->setSpacing(mSpacingHint);
929 topLayout->setMargin(mMarginHint);
930 ii = 0;
931 dummy = addWidBool(i18n("Enable conflict detection"),
932 &(KOPrefs::instance()->mDetectConflicts),topFrame);
933 topLayout->addWidget(dummy->checkBox(), ii++,0);
934 topFrame = new QFrame( topFrame );
935 topLayout->addWidget(topFrame ,ii++,0);
936 topLayout = new QGridLayout(topFrame,4,1);
937 connect ( dummy->checkBox(), SIGNAL( toggled( bool ) ), topFrame, SLOT ( setEnabled( bool ) ) );
938 topLayout->addWidget( new QLabel ( i18n("Conflict detection checks an <b>edited event</b> with other <b>existing events</b> for overlapping. You can define which events are checked:"), topFrame ) , ii++,0);
939 topLayout->addWidget( new QLabel ( i18n("Filter for the edited event"), topFrame ) , ii++,0);
940 mFilterEditItem = new QComboBox( topFrame );
941 topLayout->addWidget(mFilterEditItem,ii++,0);
942 topLayout->addWidget( new QLabel ( i18n("Filter for other existing events"), topFrame ) , ii++,0);
943 mFilterAllItem = new QComboBox( topFrame );
944 topLayout->addWidget(mFilterAllItem,ii++,0);
945 dummy = addWidBool(i18n("Check Allday with Allday"),
946 &(KOPrefs::instance()->mCheckConflictsAllDayAllDay),topFrame);
947 topLayout->addWidget(dummy->checkBox(), ii++,0);
948 dummy = addWidBool(i18n("Check Allday with NonAllday"),
949 &(KOPrefs::instance()->mCheckConflictsAllDayNonAD),topFrame);
950 topLayout->addWidget(dummy->checkBox(), ii++,0);
951 dummy = addWidBool(i18n("Check NonAllday with Allday"),
952 &(KOPrefs::instance()->mCheckConflictsNonADAllDay),topFrame);
953 topLayout->addWidget(dummy->checkBox(), ii++,0);
954 dummy = addWidBool(i18n("Check NonAllday with NonAllday"),
955 &(KOPrefs::instance()->mCheckConflictsNonADNonAD),topFrame);
956 topLayout->addWidget(dummy->checkBox(), ii++,0);
957
958
959
925 960
926 topFrame = addPage(i18n("Alarm"),0,0); 961 topFrame = addPage(i18n("Alarm"),0,0);
927 // DesktopIcon("viewmag",KIcon::SizeMedium)); 962 // DesktopIcon("viewmag",KIcon::SizeMedium));
928 963
929 topLayout = new QGridLayout(topFrame,2,1); 964 topLayout = new QGridLayout(topFrame,2,1);
930 topLayout->setSpacing(mSpacingHint); 965 topLayout->setSpacing(mSpacingHint);
931 topLayout->setMargin(mMarginHint); 966 topLayout->setMargin(mMarginHint);
932 int iii = 0; 967 int iii = 0;
933 968
934 dummy = 969 dummy =
935 addWidBool(i18n("Use internal alarm notification"), 970 addWidBool(i18n("Use internal alarm notification"),
936 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 971 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
937 topLayout->addWidget(dummy->checkBox(),iii++,0); 972 topLayout->addWidget(dummy->checkBox(),iii++,0);
938 973
939 if ( QApplication::desktop()->height() > 240 ) { 974 if ( QApplication::desktop()->height() > 240 ) {
940 975
941 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 976 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
942 977
943 topLayout->addWidget(lab ,iii++,0); 978 topLayout->addWidget(lab ,iii++,0);
944 } 979 }
945#ifndef DESKTOP_VERSION 980#ifndef DESKTOP_VERSION
946 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 981 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
947#else 982#else
948 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 983 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
@@ -1414,92 +1449,109 @@ void KOPrefsDialog::usrReadConfig()
1414 1449
1415 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1450 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1416 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1451 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1417 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1452 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
1418 1453
1419 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays); 1454 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays);
1420 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays); 1455 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays);
1421 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios); 1456 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios);
1422 // mAMails->clear(); 1457 // mAMails->clear();
1423 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin(); 1458 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin();
1424// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) { 1459// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) {
1425// QListViewItem *item = new QListViewItem(mAMails); 1460// QListViewItem *item = new QListViewItem(mAMails);
1426// item->setText(0,*it); 1461// item->setText(0,*it);
1427// mAMails->insertItem(item); 1462// mAMails->insertItem(item);
1428// } 1463// }
1429 1464
1430 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile); 1465 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile);
1431 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile); 1466 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile);
1432 updateCategories(); 1467 updateCategories();
1433 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps ); 1468 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps );
1434 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime ); 1469 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime );
1435 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount ); 1470 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount );
1436 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval ); 1471 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval );
1437 mCatDefaultColor = KOPrefs::instance()->mEventColor; 1472 mCatDefaultColor = KOPrefs::instance()->mEventColor;
1473
1474
1475 KConfig cfgko(locateLocal("config","korganizerrc"));
1476 cfgko.setGroup("General");
1477 QStringList temp = cfgko.readListEntry("CalendarFilters");
1478 temp.prepend(i18n("No Filter") );
1479 mFilterEditItem->insertStringList( temp );
1480 mFilterAllItem->insertStringList( temp );
1481 int index = temp.findIndex( KOPrefs::instance()->mFilterConflictEditItem );
1482 if ( index >= 0 )
1483 mFilterEditItem->setCurrentItem( index );
1484 index = temp.findIndex( KOPrefs::instance()->mFilterConflictAllItem );
1485 if ( index >= 0 )
1486 mFilterAllItem->setCurrentItem( index );
1438} 1487}
1439 1488
1440 1489
1441void KOPrefsDialog::usrWriteConfig() 1490void KOPrefsDialog::usrWriteConfig()
1442{ 1491{
1443 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text(); 1492 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text();
1444 KOPrefs::instance()->setFullName(mNameEdit->text()); 1493 KOPrefs::instance()->setFullName(mNameEdit->text());
1445 KOPrefs::instance()->setEmail(mEmailEdit->text()); 1494 KOPrefs::instance()->setEmail(mEmailEdit->text());
1446 1495
1447 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value(); 1496 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value();
1448 KOPrefs::instance()->mStartTime = mStartTimeSpin->value(); 1497 KOPrefs::instance()->mStartTime = mStartTimeSpin->value();
1449 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value(); 1498 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value();
1450 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem(); 1499 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
1451 if ( mCatDefaultColor != KOPrefs::instance()->mEventColor ) { 1500 if ( mCatDefaultColor != KOPrefs::instance()->mEventColor ) {
1452 QStringList cat = KOPrefs::instance()->mCustomCategories; 1501 QStringList cat = KOPrefs::instance()->mCustomCategories;
1453 int iii = 0; 1502 int iii = 0;
1454 while ( iii < cat.count() ) { 1503 while ( iii < cat.count() ) {
1455 if ( *KOPrefs::instance()->categoryColor( cat[ iii ] ) == mCatDefaultColor ) 1504 if ( *KOPrefs::instance()->categoryColor( cat[ iii ] ) == mCatDefaultColor )
1456 KOPrefs::instance()->setCategoryColor( cat[ iii ], KOPrefs::instance()->mEventColor ); 1505 KOPrefs::instance()->setCategoryColor( cat[ iii ], KOPrefs::instance()->mEventColor );
1457 ++iii; 1506 ++iii;
1458 } 1507 }
1459 } 1508 }
1460 QDictIterator<QColor> it(mCategoryDict); 1509 QDictIterator<QColor> it(mCategoryDict);
1461 while (it.current()) { 1510 while (it.current()) {
1462 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current()); 1511 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current());
1463 ++it; 1512 ++it;
1464 } 1513 }
1465 1514
1466 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value(); 1515 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value();
1467 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value(); 1516 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value();
1468 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value(); 1517 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value();
1469 1518
1470 KOPrefs::instance()->mAdditionalMails.clear(); 1519 KOPrefs::instance()->mAdditionalMails.clear();
1471 // QListViewItem *item; 1520 // QListViewItem *item;
1472 // item = mAMails->firstChild(); 1521 // item = mAMails->firstChild();
1473 // while (item) 1522 // while (item)
1474 // { 1523 // {
1475 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) ); 1524 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) );
1476 // item = item->nextSibling(); 1525 // item = item->nextSibling();
1477 // } 1526 // }
1478 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value(); 1527 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value();
1479 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ; 1528 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ;
1480 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ; 1529 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ;
1481 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ; 1530 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ;
1531
1532 KOPrefs::instance()->mFilterConflictEditItem = mFilterEditItem->currentText();
1533 KOPrefs::instance()->mFilterConflictAllItem = mFilterAllItem->currentText();
1482} 1534}
1483 1535
1484void KOPrefsDialog::updateCategories() 1536void KOPrefsDialog::updateCategories()
1485{ 1537{
1486 mCategoryCombo->clear(); 1538 mCategoryCombo->clear();
1487 mCategoryDict.clear(); 1539 mCategoryDict.clear();
1488 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1540 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1489 updateCategoryColor(); 1541 updateCategoryColor();
1490} 1542}
1491 1543
1492void KOPrefsDialog::toggleEmailSettings(bool on) 1544void KOPrefsDialog::toggleEmailSettings(bool on)
1493{ 1545{
1494 if (on) { 1546 if (on) {
1495 mEmailEdit->setEnabled(false); 1547 mEmailEdit->setEnabled(false);
1496 mNameEdit->setEnabled(false); 1548 mNameEdit->setEnabled(false);
1497 mEmailLabel->setEnabled(false); 1549 mEmailLabel->setEnabled(false);
1498 mNameLabel->setEnabled(false); 1550 mNameLabel->setEnabled(false);
1499 1551
1500 KEMailSettings settings; 1552 KEMailSettings settings;
1501 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName)); 1553 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName));
1502 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress)); 1554 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress));
1503 } else { 1555 } else {
1504 mEmailEdit->setEnabled(true); 1556 mEmailEdit->setEnabled(true);
1505 mNameEdit->setEnabled(true); 1557 mNameEdit->setEnabled(true);
diff --git a/korganizer/koprefsdialog.h b/korganizer/koprefsdialog.h
index baa6cf9..ee7a7aa 100644
--- a/korganizer/koprefsdialog.h
+++ b/korganizer/koprefsdialog.h
@@ -126,30 +126,32 @@ class KOPrefsDialog : public KPrefsDialog
126 QSlider *mHourSizeSlider; 126 QSlider *mHourSizeSlider;
127 127
128 QSpinBox *mNextXDaysSpin; 128 QSpinBox *mNextXDaysSpin;
129 QSpinBox *mWhatsNextSpin; 129 QSpinBox *mWhatsNextSpin;
130 130
131 QLineEdit * mRemoteIPEdit; 131 QLineEdit * mRemoteIPEdit;
132 QLineEdit * mRemoteUser; 132 QLineEdit * mRemoteUser;
133 QLineEdit * mRemotePassWd; 133 QLineEdit * mRemotePassWd;
134 QLineEdit * mRemoteFile; 134 QLineEdit * mRemoteFile;
135 QLineEdit * mLocalTempFile; 135 QLineEdit * mLocalTempFile;
136 QWidget* mSetupSyncAlgTab; 136 QWidget* mSetupSyncAlgTab;
137 QLineEdit * mUserDateFormatLong; 137 QLineEdit * mUserDateFormatLong;
138 QLineEdit * mUserDateFormatShort; 138 QLineEdit * mUserDateFormatShort;
139 139
140 QSpinBox *mTimezoneOffsetSpin; 140 QSpinBox *mTimezoneOffsetSpin;
141 QSpinBox *mDaylightsavingStart; 141 QSpinBox *mDaylightsavingStart;
142 QSpinBox *mDaylightsavingEnd; 142 QSpinBox *mDaylightsavingEnd;
143 KDateEdit* mStartDateSavingEdit; 143 KDateEdit* mStartDateSavingEdit;
144 KDateEdit* mEndDateSavingEdit; 144 KDateEdit* mEndDateSavingEdit;
145 QSpinBox * mAlarmPlayBeeps; 145 QSpinBox * mAlarmPlayBeeps;
146 QSpinBox * mAlarmSuspendTime; 146 QSpinBox * mAlarmSuspendTime;
147 QSpinBox * mAlarmSuspendCount; 147 QSpinBox * mAlarmSuspendCount;
148 QSpinBox * mAlarmBeepInterval; 148 QSpinBox * mAlarmBeepInterval;
149 149
150 QComboBox * mFilterEditItem, *mFilterAllItem;
151
150 QLineEdit * mDefaultAlarmFile; 152 QLineEdit * mDefaultAlarmFile;
151 int mSpacingHint; 153 int mSpacingHint;
152 int mMarginHint; 154 int mMarginHint;
153}; 155};
154 156
155#endif 157#endif