Right now, save() has to be synchronous for the following scenarios:
- kcmshell5, user clicks OK, it calls save() and quits right away
- System Settings when switching modules with unsaved changes, will call save() and destroy the KCM
This can be undesirable especially for situations where DBus calls are made and potentially cause PolKit prompts.
There should be a saveDone() signal or similar the KCM can emit to signal when it's done saving settings? Perhaps with a setDelayed.. so simple save() is still possible easily. Or maybe it should be a SaveJob? :D