[Kde-pim] Seeking advice on how to fix bug 282346

Allen Winter winter at kde.org
Wed Sep 21 23:24:51 BST 2011


On Tuesday 20 September 2011 3:21:35 PM Stephan Diestelhorst wrote:
> 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
> 
That is good. We are really overloaded and understaffed.
As the KOrganizer maintainer, I'm ultimately responsible for this bug.
But I'd really like Sergio to take this one.

However, Sergio is on vacation.  So you may not hear back for a few days.

Just wanted to let you know that we're not ignoring you.
-Allen

> 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/
> 
_______________________________________________
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