Summary: | korganzer moves recurring events when restarting or changing other events | ||
---|---|---|---|
Product: | [Applications] korganizer | Reporter: | Roman Fietze <kde> |
Component: | general | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | a3aan.spam, felix, markus, nikolas.weber, tgpfeiffer |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Roman Fietze
2006-10-24 07:52:56 UTC
*** Bug 136596 has been marked as a duplicate of this bug. *** Reassigning all KOrganizer bug reports and wishes to the newly created korganizer-devel mailing list. This bug also occurs with the 3.5.5 on Kubuntu Edgy 6.10. It is very serious, as it causes loss of recurring appointments. There is no real way to restore them; adding them again does not work as the bug will simply eat it up again. The easiest way to work around this is to create a series of non recurring events in place of all recurring events, and this is hardly ideal. SVN commit 601750 by bram: Fix commit 587417 by winterz to handle recurring events properly in the summary widget. Data was written to events, which is evil (bug 136221). Now, create a separate list to prevent implicit sharing. BUG:136221 M +11 -5 summarywidget.cpp --- branches/KDE/3.5/kdepim/kontact/plugins/korganizer/summarywidget.cpp #601749:601750 @@ -97,20 +97,26 @@ for ( dt=currentDate; dt<=currentDate.addDays( days - 1 ); dt=dt.addDays(1) ) { - KCal::Event::List events = mCalendar->events( dt ); KCal::Event *ev; - KCal::Event::List::ConstIterator it; + + KCal::Event::List events_orig = mCalendar->events( dt ); + KCal::Event::List::ConstIterator it = events_orig.begin(); + + KCal::Event::List events; + events.setAutoDelete( true ); QDateTime qdt; - // Find recurring events, replacing the QDate with the currentDate - for ( it=events.begin(); it!=events.end(); ++it ) { - ev = *it; + // prevent implicitely sharing while finding recurring events + // replacing the QDate with the currentDate + for ( ; it != events_orig.end(); ++it ) { + ev = (*it)->clone(); if ( ev->recursOn( dt ) ) { qdt = ev->dtStart(); qdt.setDate( dt ); ev->setDtStart( qdt ); } + events.append( ev ); } // sort the events for this date by summary *** Bug 137043 has been marked as a duplicate of this bug. *** *** Bug 142474 has been marked as a duplicate of this bug. *** *** Bug 143298 has been marked as a duplicate of this bug. *** |