AgentManager: avoid recursion agentTypeAdded->readAgentTypes->agentTypeAdded
Review Request #124603 - Created Aug. 3, 2015 and submitted - Latest diff uploaded
and the same with agent instances. With 20 instances, this would make the dbus call agentInstances() 20 times, when getting the notification that akonadi is starting up (so all processes are doing this at the same time, very bad for performance). New solution: read agent types+instances at startup if Akonadi::Control is online, otherwise when getting the notification that it is, or when getting the signal that a type/instance was added. Always emit signals, but of course when doing this from the constructor nobody is listening (no problem, fast). The old code was using a different code path to avoid emitting signals for the initially loaded types+instances, so the behavior is the same.
With debug output above the emit statements, I checked what was emitted before and after the patch, seems to be the same.
Tested the case where the app is up before akonadi is started, and the easier case where akonadi is up before the app.