Systemd provides the status of a given user and system session as a
human readable string.
Retrieve this information via RequestSystemState and guard the
retrieve of failed units depending on this request.
The functionality is extended but does not change, which means that
failed units in any granularity are displayed as before.
Update documentation in the meantime.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Instead if guarding visibility in if condition, enforce visibility
regardless of the state of the current update.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Split-out request of failed units from systemd into a separate member
function.
This increases the readability and extendability, but preserves the
current functionality (non-functional change).
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Determining of failed units can be done by usage of explicit uint32
function with direct return due to auto lambda expression.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Checking for the availability of a given proxy member can be done in the
lambda function as well.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Keeping nr_failed as member allows to split-out calculation of overall
failed units into updateData.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Initialize `cldMonShift_` member in the `clock` module constructor. This
fixes a bug where the calendar tooltip would break after a reload, when
in month mode.
There are cases where systemd-logind is not used/running. Result is
that bcklight module will not run.
Add an option that, when set to false, allows backlight module to
work without systemd-logind.
Previously, string JSON values were special cased to be provided as
bare strings, which means that CFFI modules have to either know what
type each value is expected to be, or use a heuristic such as trying to
decode and then treating the value as a string on failure.
Instead, we can always return JSON, and let the downstream consumer
handle deserialising the value into whatever type is expected.
The new behaviour is gated on a new ABI version 2: modules built against
version 1 will continue to get the old behaviour.