Revision 4ce4f73...

Go back to digest for 8th June 2014

Optimization in Development Tools

Milian Wolff committed changes in [kdevplatform] /:

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
pure virtual.

File Changes

Modified 12 files
  •   interfaces/iplugincontroller.cpp
  •   interfaces/iplugincontroller.h
  •   shell/documentcontroller.cpp
  •   shell/languagecontroller.cpp
  •   shell/openprojectpage.cpp
  •   shell/plugincontroller.cpp
  •   shell/plugincontroller.h
  •   shell/statusbar.cpp
  •   tests/testplugincontroller.cpp
  •   tests/testplugincontroller.h
  •   plugins/appwizard/appwizardplugin.cpp
  •   plugins/appwizard/projectvcspage.cpp
12 files changed in total