Commit e47b6c67 authored by Daniel Vrátil's avatar Daniel Vrátil 🤖

Fix displaying ITIP invitations

Probably some OTP refactoring broke displaying of ITIP invitation.
This patch fixes the problem. It may not fix the root cause of the
problem, but at least it makes ITIP invitations work again.

What happens is that OTP::parseObjectTreeInternal() first calls
Formatter::format() without the asyncResultObserver. Without this
patch it still creates the new memento, but does not connect it to
the observer. Then OTP calls the Formatter again immediatelly after,
but this time with a valid asyncResultObserver. Because the memento
already exists, this only triggers the codepath that checks whether
the memento is finished (which it is not) and exists. When the memento
is finished nothing happens, because it wasn't initially connected
to the observer to force update of the Viewer.

With this patch we don't create the memento if there is no
asyncResultObserver. That means that the next time the Formatter is
called with a valid asyncResultObserver we create the memento and
connect it to the observer. Once the memento is finished, the Viewer
is updated and the invitation is displayed correctly.

Differential Revision: https://phabricator.kde.org/D1512
parent 550c152b
......@@ -187,6 +187,10 @@ public:
return Ok;
}
if (!asyncResultObserver) {
return Ok;
}
/** Formating is async now because we need to fetch incidences from akonadi.
Basically this method (format()) will be called twice. The first time
it creates the memento that fetches incidences and returns.
......@@ -230,11 +234,8 @@ public:
} else {
MemoryCalendarMemento *memento = new MemoryCalendarMemento();
bodyPart->setBodyPartMemento(memento);
if (asyncResultObserver) {
QObject::connect(memento, SIGNAL(update(MimeTreeParser::UpdateMode)),
asyncResultObserver, SLOT(update(MimeTreeParser::UpdateMode)));
}
QObject::connect(memento, SIGNAL(update(MimeTreeParser::UpdateMode)),
asyncResultObserver, SLOT(update(MimeTreeParser::UpdateMode)));
}
return Ok;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment