Suspend/Hibernate through daemon instead of greeter

Authored by graesslin on Jan 15 2016, 10:18 AM.

Description

Suspend/Hibernate through daemon instead of greeter

Summary:
This change addresses multiple problems with the implementation of
PowerManagement's suspend/hibernate in the greeter.

First of all it removes the usage of KDELibs4Support library by
dropping the usage of the PowerManagement API.

The previous variant performed blocking DBus calls which we don't want
in the greeter. The new implementation is designed in an async way, so
that it cannot block. The new implementation is also LGPL licensed to
make it easy to use it as a base for a new implementation in frameworks.
The new implementation also comes with a small test application to
demonstrate the usage.

Last but not least the power management query is moved from the greeter
into the daemon. This brings multiple advantages. It brings us closer to
no DBus in the greeter and means we don't need to query DBus every time
the screen gets locked. Instead the value is cached in the deamon and
pushed to the greeter on start (through the custom Wayland prtocol).

Reviewers: bshah, broulik

Differential Revision: https://phabricator.kde.org/D827

Details