kcmodule: Don't crash when a configured button action is unsupported
The bounds check in the data() method of PowerButtonActionModel and SleepModeModel was incomplete, so passing an invalid index such as -1 (standard value for "not found") could cause a crash.
For power management settings, a user would run into this crash if their configuration from powerdevilrc listed a power button action that's not supported on the current system. For example, a user may have selected "Sleep" as lid action, but subsequently changed their systemd configuration to disable suspend-to-RAM because it caused problems. Or they could have migrated their OS to a new computer which does not support Sleep.
Fixing this allows us to assign currentIndex declaratively instead of waiting until Component.onCompleted to (hopefully) find a valid item in the model.
I split this patch into two parts:
- The first one with the above commit message, which fixes the crash and can be cherry-picked to
Plasma/6.0
. - The second one with just a commit title, which adds
InlineMessage
warnings to tell the user what's actually going on. Due to new strings, this should not go intoPlasma/6.0
.