diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-08-18 08:07:58 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-08-18 08:07:58 +0000 |
commit | 740cad9fc10cc4e3683b619cbe06da24ef18f1b0 (patch) | |
tree | e5540379c2fe570b009ea5d99cdecbc13ee71ea4 /korganizer | |
parent | 8f37a4f755113e7440ae985111d36985d500cc95 (diff) | |
download | tdepim-740cad9fc10cc4e3683b619cbe06da24ef18f1b0.tar.gz tdepim-740cad9fc10cc4e3683b619cbe06da24ef18f1b0.zip |
Attempt to fix incorrect meeting motices being sent when the first instance of a recurring meeting is deleted.
This may need more work depending on how the number of recurrences are handled
This should be more compatible with most CalDAV resources than the old way...
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1165076 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'korganizer')
-rw-r--r-- | korganizer/calendarview.cpp | 9 | ||||
-rw-r--r-- | korganizer/incidencechanger.cpp | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index b13b0691f..340c6dab7 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -2060,7 +2060,14 @@ void CalendarView::deleteIncidence(Incidence *incidence, bool force) case KMessageBox::Yes: // just this one if ( mChanger->beginChange( incidence ) ) { Incidence *oldIncidence = incidence->clone(); - incidence->recurrence()->addExDate( itemDate ); + if (incidence->recurrence()->startDate() == itemDate) { + // Moving the first in a series...don't bother with the nonstandard exclusion list + incidence->recurrence()->setStartDateTime( incidence->recurrence()->getNextDateTime( incidence->recurrence()->startDateTime() ) ); + } + else { + // No choice but to use the exclusion list + incidence->recurrence()->addExDate( itemDate ); + } mChanger->changeIncidence( oldIncidence, incidence ); mChanger->endChange( incidence ); delete oldIncidence; diff --git a/korganizer/incidencechanger.cpp b/korganizer/incidencechanger.cpp index 623eaa944..92332578c 100644 --- a/korganizer/incidencechanger.cpp +++ b/korganizer/incidencechanger.cpp @@ -82,7 +82,7 @@ bool IncidenceChanger::endChange( Incidence *incidence ) // FIXME: if that's a groupware incidence, and the incidence was // never locked, we can't unlock it with endChange(). if ( !incidence ) return false; -kdDebug(5850)<<"IncidenceChanger::endChange for incidence \""<<incidence->summary()<<"\""<<endl; + // kdDebug(5850)<<"IncidenceChanger::endChange for incidence \""<<incidence->summary()<<"\""<<endl; return mCalendar->endChange( incidence ); } @@ -289,7 +289,7 @@ kdDebug(5850)<<"IncidenceChanger::changeIncidence for incidence \""<<newinc->sum int revision = newinc->revision(); newinc->setRevision( revision + 1 ); // FIXME: Use a generic method for this! Ideally, have an interface class - // for group cheduling. Each implementation could then just do what + // for group scheduling. Each implementation could then just do what // it wants with the event. If no groupware is used,use the null // pattern... bool revert = KOPrefs::instance()->mUseGroupwareCommunication; |