Optimization in Development Tools
Optimize and cleanup the plugin controller architecture.
We repeatedly queried for plugins using the KServiceTypeTrader API.
This is quite costly, esp. the amount of allocations it triggers is
huge. Also, we cached the useful results of that already, so why
not make use of that, no?
This patch does this. We only query for KDevelop plugins once and
then operate on that list. The API is cleaned up and duplicate
code removed while at it.
Constraints are now given as a QVariantMap instead of using the
trader language and the IPluginController static functions become