-
Parent Class Selection Rules:
- Choose different parent classes based on plugin type
- Follow the pattern of
CaptureScreenByKDESpectaclePlugin which inherits (directly or indirectly) from PluginBasicExt
-
Inheritance Restrictions:
- Direct inheritance from
PluginBasic is prohibited. Use its functional subclasses:
AbsCaptureScreenPlugin provides screenshot capabilities
AbsStoragePlugin provides storage capabilities
PluginBasicExt only offers basic plugin capabilities
-
Lifecycle Management:
- Subclasses of
PluginBasic gain extended lifecycle methods required for KRecall integration
- KRecall acts as a coordination platform that:
- Discovers all plugin implementations
- Manages plugin selection state through:
selected() invoked when user activates an implementation
unselected() invoked when deactivating
- Renders testing interfaces for selected plugins via
UI() method
-
Initialization Workflow:
- Final initialization is completed through
tryInit(context: PluginContext): InitResult
- Users select implementations on KRecall plugin configuration page
- Capabilities of the same type (e.g., multiple
AbsCaptureScreenPlugin implementations) will be listed for user selection