summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt14
-rw-r--r--korganizer/calendarview.cpp7
-rw-r--r--korganizer/kodaymatrix.cpp6
-rw-r--r--korganizer/koprefs.cpp2
-rw-r--r--korganizer/koprefs.h2
-rw-r--r--korganizer/koprefsdialog.cpp13
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);