Currently lots of projects have dedicated macros to create plugins for a spefici class. Like K_EXPORT_PLASMA_APPLET_WITH_JSON or K_EXPORT_PLASMA_RUNNER_WITH_JSON. During the KF4 times this was necessary, because each class had some string magic involved, for example:
#define K_EXPORT_PLASMA_DATAENGINE(libname, classname) \ K_PLUGIN_FACTORY(factory, registerPlugin<classname>();) \ K_EXPORT_PLUGIN(factory("plasma_engine_" #libname)) \ K_EXPORT_PLUGIN_VERSION(PLASMA_VERSION)
With T14302 we can just use the K_PLUGIN_CLASS_WITH_JSON macro directly and don't have any extra code.
Current usages are:
- K_EXPORT_PLASMA_RUNNER_WITH_JSON
- K_EXPORT_PLASMA_APPLET_WITH_JSON
- K_EXPORT_PLASMA_CONTAINMENTACTIONS_WITH_JSON
- K_EXPORT_PLASMA_DATAENGINE_WITH_JSON
- K_EXPORT_PLASMA_PACKAGE_WITH_JSON
- K_EXPORT_PLASMA_SERVICE_WITH_JSON
- K_EXPORT_PLASMA_DATAENGINESCRIPTENGINE_WITH_JSON
- PLAN_SCHEDULERPLUGIN_EXPORT
- KDB_DRIVER_PLUGIN_FACTORY
- KEXI_PLUGIN_FACTORY
- K_EXPORT_KPACKAGE_PACKAGE_WITH_JSON
- KREPORT_PLUGIN_FACTORY