-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 14 | ||||
-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 | 13 |
6 files changed, 40 insertions, 4 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index fbd262c..2c0d626 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt @@ -1546,17 +1546,27 @@ { "<b>iCal (*.ics) file on disk:</b><br>(will be created, if not existing)","<b>iCal (*.ics) Datei:</b><br>(Datei wird angelegt, wenn sie nicht existiert)" }, { "Error saving data","Fehler beim Abspeichern" }, { "Calendar(s) not saved:","Nicht gespeicherte Kalender:" }, { "Enable conflict detection","Schalte Konflikterkennung an" }, -{ "Conflict detection checks an <b>edited event</b> with other <b>existing events</b> for overlapping. You can define which events are checked:","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>. Sie können einstellen welche Termine überprüft werden:" }, { "Filter for the edited event","Filter für den bearbeiteten Termin" }, -{ "Filter for other existing events","Filter für die anderen Termine" }, +{ "Filter for other events","Filter für die anderen Termine" }, { "Check Allday with Allday","Prüfe GanzTag mit GanzTag" }, { "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" }, { "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" }, { "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" }, { "Conflict detection","Konflikterkennung" }, { "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" }, +{ "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." }, +{ "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" }, +{ "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." }, +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" }, { "","" }, { "","" }, { "","" }, { "","" }, diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 9928b48..14094bb 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -3043,8 +3043,10 @@ void CalendarView::changeEventDisplay(Event *which, int action) } 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() ) ); } // } @@ -3094,8 +3096,13 @@ void CalendarView::checkConflictForEvent() 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; diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp index 057df0d..7076e05 100644 --- a/korganizer/kodaymatrix.cpp +++ b/korganizer/kodaymatrix.cpp @@ -457,8 +457,11 @@ void KODayMatrix::updateViewTimed() 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; @@ -683,8 +686,11 @@ void KODayMatrix::updateEvents() ( recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur ) ) { numEvents--; } + if ( !KOPrefs::instance()->mLongAllday && event->doesFloat()&& event->isMultiDay() ) { + numEvents--; + } } if ( numEvents ) eDays.setBit(i); else diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 571ca11..1b0e5f4 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp @@ -231,8 +231,9 @@ KOPrefs::KOPrefs() : 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); @@ -243,8 +244,9 @@ KOPrefs::KOPrefs() : 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); diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 576edf9..bac8010 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h @@ -193,8 +193,9 @@ class KOPrefs : public KPimPrefs int mAllDaySize; bool mShowFullMenu; bool mDailyRecur; bool mWeeklyRecur; + bool mLongAllday; bool mMonthDailyRecur; bool mMonthWeeklyRecur; bool mMonthShowIcons; bool mMonthShowTimes; @@ -350,8 +351,9 @@ class KOPrefs : public KPimPrefs bool mGlobalUpdateDisabled; bool mDetectConflicts; + bool mIncludeFree; bool mCheckConflictsAllDayAllDay; bool mCheckConflictsAllDayNonAD; bool mCheckConflictsNonADAllDay; bool mCheckConflictsNonADNonAD; diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp index bbdf508..f1a6c3d 100644 --- a/korganizer/koprefsdialog.cpp +++ b/korganizer/koprefsdialog.cpp @@ -577,8 +577,13 @@ void KOPrefsDialog::setupViewsTab() 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); @@ -934,13 +939,17 @@ dummy = topFrame = new QFrame( topFrame ); topLayout->addWidget(topFrame ,ii++,0); 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); |