-rw-r--r-- | korganizer/calendarview.cpp | 7 | ||||
-rw-r--r-- | korganizer/kodaymatrix.cpp | 6 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 2 | ||||
-rw-r--r-- | korganizer/koprefs.h | 2 | ||||
-rw-r--r-- | korganizer/koprefsdialog.cpp | 15 |
5 files changed, 29 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 9928b48..14094bb 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -3039,16 +3039,18 @@ void CalendarView::changeEventDisplay(Event *which, int action) bool checkC = false; if ( mConflictingEvent->doesFloat() ) { checkC = KOPrefs::instance()->mCheckConflictsAllDayAllDay || KOPrefs::instance()->mCheckConflictsAllDayNonAD; } else { checkC = KOPrefs::instance()->mCheckConflictsNonADAllDay || KOPrefs::instance()->mCheckConflictsNonADNonAD; } + if ( !KOPrefs::instance()->mIncludeFree && mConflictingEvent->transparency() == KCal::Event::Transparent ) + checkC = false; if ( checkC ) QTimer::singleShot( time, this, SLOT ( checkConflictForEvent() ) ); } // } } else { mViewManager->currentView()->updateView(); } } @@ -3090,16 +3092,21 @@ void CalendarView::checkConflictForEvent() if ( !conflictingEvent->doesFloat() ) { chAD = KOPrefs::instance()->mCheckConflictsNonADAllDay; chNad = KOPrefs::instance()->mCheckConflictsNonADNonAD; } topLevelWidget()->setCaption( i18n("Checking conflicts ... please wait") ); while ( test ) { qApp->processEvents(); bool skip = ( test->doesFloat() && !chAD ) || ( !test->doesFloat() && !chNad ); + + if ( !skip ) { + if ( !KOPrefs::instance()->mIncludeFree && test->transparency() == KCal::Event::Transparent ) + skip = true; + } if ( !skip ) { if ( filterALL ) { if ( !filterALL->filterCalendarItem( test ) ) { skip = true; } } if ( !skip ) { if ( found ) diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp index 057df0d..7076e05 100644 --- a/korganizer/kodaymatrix.cpp +++ b/korganizer/kodaymatrix.cpp @@ -453,16 +453,19 @@ void KODayMatrix::updateViewTimed() QDate mStartDate = days[0]; QDate endDate = mStartDate.addDays( timeSpan ); for( event = events.first(); event; event = events.next() ) { // for event ushort recurType = event->doesRecur(); if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { continue; } + if ( !KOPrefs::instance()->mLongAllday && event->doesFloat()&& event->isMultiDay() ) { + continue; + } if ( event->doesRecur() ) { bool last; QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); QDateTime incidenceEnd; int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); bool invalid = false; while( true ) { if ( incidenceStart.isValid() ) { @@ -679,16 +682,19 @@ void KODayMatrix::updateEvents() ushort recurType = event->doesRecur(); if ( ( recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur ) || ( recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur ) ) { numEvents--; } + if ( !KOPrefs::instance()->mLongAllday && event->doesFloat()&& event->isMultiDay() ) { + numEvents--; + } } if ( numEvents ) eDays.setBit(i); else eDays.clearBit(i); } } diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 571ca11..1b0e5f4 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp @@ -227,28 +227,30 @@ KOPrefs::KOPrefs() : addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); addItemBool("UseAppColors",&mUseAppColors,false); KPrefs::setCurrentGroup("Conflicts"); addItemBool("EnableAutoDetect",&mDetectConflicts,true); + addItemBool("CheckConflictsFree",&mIncludeFree,true); addItemBool("CheckConflictsAllDayAllDay",&mCheckConflictsAllDayAllDay,false); addItemBool("CheckConflictsAllDayNonAD",&mCheckConflictsAllDayNonAD,false); addItemBool("CheckConflictsNonADAllDay",&mCheckConflictsNonADAllDay,false); addItemBool("CheckConflictsNonADNonAD",&mCheckConflictsNonADNonAD,true); addItemString("FilterConflictEditItem", &mFilterConflictEditItem ,"nofilter" ); addItemString("FilterConflictAllItem", &mFilterConflictAllItem ,"nofilter" ); KPrefs::setCurrentGroup("Views"); addItemBool("Block Popup Menu",&mBlockPopupMenu,false); addItemBool("Show Date Navigator",&mShowDateNavigator,true); addItemInt("Hour Size",&mHourSize,8); addItemBool("Show Daily Recurrences",&mDailyRecur,true); + addItemBool("ShowLongAllday",&mLongAllday,true); addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); addItemBool("ShowShortMonthName",&mMonthShowShort,false); addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true); #ifdef DESKTOP_VERION addItemBool("Enable ToolTips",&mEnableToolTips,true); diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 576edf9..bac8010 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h @@ -189,16 +189,17 @@ class KOPrefs : public KPimPrefs bool mUseAppColors; int mDayBegins; int mHourSize; int mAllDaySize; bool mShowFullMenu; bool mDailyRecur; bool mWeeklyRecur; + bool mLongAllday; bool mMonthDailyRecur; bool mMonthWeeklyRecur; bool mMonthShowIcons; bool mMonthShowTimes; bool mMonthShowShort; bool mEnableToolTips; bool mEnableMonthScroll; bool mFullViewMonth; @@ -346,16 +347,17 @@ class KOPrefs : public KPimPrefs int mCurrentDisplayedView; QPtrList<KopiCalendarFile> mCalendars; int mNextAvailableCalendar; bool mGlobalUpdateDisabled; bool mDetectConflicts; + bool mIncludeFree; bool mCheckConflictsAllDayAllDay; bool mCheckConflictsAllDayNonAD; bool mCheckConflictsNonADAllDay; bool mCheckConflictsNonADNonAD; QString mFilterConflictEditItem; QString mFilterConflictAllItem; private: diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp index bbdf508..f1a6c3d 100644 --- a/korganizer/koprefsdialog.cpp +++ b/korganizer/koprefsdialog.cpp @@ -573,16 +573,21 @@ void KOPrefsDialog::setupViewsTab() &(KOPrefs::instance()->mDailyRecur),topFrame); topLayout->addWidget(dailyRecur->checkBox(),ii++,0); KPrefsDialogWidBool *weeklyRecur = addWidBool(i18n("Show ev. that recur weekly in date nav."), &(KOPrefs::instance()->mWeeklyRecur),topFrame); topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); + weeklyRecur = + addWidBool(i18n("Show multiday allday ev. in date nav."), + &(KOPrefs::instance()->mLongAllday),topFrame); + topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); + #ifdef DESKTOP_VERSION KPrefsDialogWidBool *enableToolTips = addWidBool(i18n("Enable tooltips displaying summary of ev."), &(KOPrefs::instance()->mEnableToolTips),topFrame); topLayout->addWidget(enableToolTips->checkBox(),ii++,0); #endif // ********************************************************* @@ -928,23 +933,27 @@ dummy = topLayout->setSpacing(mSpacingHint); topLayout->setMargin(mMarginHint); ii = 0; dummy = addWidBool(i18n("Enable conflict detection"), &(KOPrefs::instance()->mDetectConflicts),topFrame); topLayout->addWidget(dummy->checkBox(), ii++,0); topFrame = new QFrame( topFrame ); topLayout->addWidget(topFrame ,ii++,0); - topLayout = new QGridLayout(topFrame,4,1); + topLayout = new QGridLayout(topFrame,4,1); connect ( dummy->checkBox(), SIGNAL( toggled( bool ) ), topFrame, SLOT ( setEnabled( bool ) ) ); - 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); + dummy = addWidBool(i18n("Include events which \"show as free\""), + &(KOPrefs::instance()->mIncludeFree),topFrame); + topLayout->addWidget(dummy->checkBox(), ii++,0); + topLayout->addWidget( new QLabel ( i18n("Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping."), topFrame ) , ii++,0); + topLayout->addWidget( new QLabel ( i18n("Filter for the edited event"), topFrame ) , ii++,0); mFilterEditItem = new QComboBox( topFrame ); topLayout->addWidget(mFilterEditItem,ii++,0); - topLayout->addWidget( new QLabel ( i18n("Filter for other existing events"), topFrame ) , ii++,0); + topLayout->addWidget( new QLabel ( i18n("Filter for other events"), topFrame ) , ii++,0); mFilterAllItem = new QComboBox( topFrame ); topLayout->addWidget(mFilterAllItem,ii++,0); dummy = addWidBool(i18n("Check Allday with Allday"), &(KOPrefs::instance()->mCheckConflictsAllDayAllDay),topFrame); topLayout->addWidget(dummy->checkBox(), ii++,0); dummy = addWidBool(i18n("Check Allday with NonAllday"), &(KOPrefs::instance()->mCheckConflictsAllDayNonAD),topFrame); topLayout->addWidget(dummy->checkBox(), ii++,0); |