[Kde-pim] Seeking advice on how to fix bug 282346
Stephan Diestelhorst
stephan.diestelhorst at gmail.com
Tue Sep 20 20:21:35 BST 2011
Dear KDE PIM hackers,
I decided that I have moaned about PIM bugs long enough and
started looking into https://bugs.kde.org/show_bug.cgi?id=282346
Quick summary is that the calendar sends out event updates, on
changing an appointment even though:
* I am not the organiser of the event
* I disabled Groupware communication to work around the issue
Digging through the code, and using GDB, I confirmed the following
flow of code (on 4.7.0):
bool IncidenceChanger::Private::performChange
( Change *change ) at calendarsupport/incidencechanger.cpp:99
CalendarSupport::IncidenceChanger::Private::changeIncidenceFinished
(this=0xc81910,) at calendarsupport/incidencechanger.cpp:233
CalendarSupport::InvitationHandler::sendIncidenceModifiedMessage
(this=0x7fffffffcfc0, method=KCalCore::iTIPRequest,
incidence=..., attendeeStatusChanged=false) at
calendarsupport/next/invitationhandler.cpp:374
Interestingly, IncidenceChanger::Private::performChange
(calendarsupport/incidencechanger.cpp) contains all the proper logic:
it checks KCalPrefs::instance()->mUseGroupwareCommunication and then
displays a message box, if I am not the organiser of an event, via
InvitationHandler::handleIncidenceAboutToBeModified
(calendarsupport/next/invitationhandler.cpp)
However, it seems the logic has been duplicated and split to handle
asynchronous Akonadi interaction through new Akonadi::ItemModifyJob(...)
and then void IncidenceChanger::Private::changeIncidenceFinished( KJob *j ).
That function does not check for the mUseGroupwareCommunication flag,
nor does it present the user with a dialog box when he is not the organiser.
Through handler.sendIncidenceModifiedMessage(...) which eventually
ends up calling
...
} else {
return d->sentInvitation( KMessageBox::Yes, incidence, method );
}
sending out invitations, although the user is not the organiser nor has group-
communication enabled and never has a chance to intercept.
Adding an additional check for the groupware flag and asking the user
in changeINcidenceFinished once again would b straight-forward. Any
preference?
Stephan
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list