Fixed support for logind power state calls.

This resolves bug 2661 and bug 2975.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/25/head
Michele Calgaro 5 years ago committed by Slávek Banko
parent 43609c8a21
commit c49ee53043
Signed by: SlavekB
GPG Key ID: 608F5293A04BE668

@ -698,41 +698,32 @@ bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState
#ifdef WITH_LOGINDPOWER #ifdef WITH_LOGINDPOWER
{ {
// No support for "freeze" in org.freedesktop.login1 // No support for "freeze" and "standby" in org.freedesktop.login1
TQT_DBusConnection dbusConn; TQT_DBusConnection dbusConn;
dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
if ( dbusConn.isConnected() ) { if ( dbusConn.isConnected() ) {
if (ps == TDESystemPowerState::Suspend) { TQT_DBusProxy logindProxy("org.freedesktop.login1", "/org/freedesktop/login1",
TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.freedesktop.login1.Manager", dbusConn);
"org.freedesktop.login1", TQValueList<TQT_DBusData> params;
"/org/freedesktop/login1", params << TQT_DBusData::fromBool(true);
"org.freedesktop.login1.Manager", if (logindProxy.canSend()) {
"Suspend"); if (ps == TDESystemPowerState::Suspend) {
TQT_DBusMessage reply = dbusConn.sendWithReply(msg); TQT_DBusMessage reply = logindProxy.sendWithReply("Suspend", params);
if (reply.type() == TQT_DBusMessage::ReplyMessage) { if (reply.type() == TQT_DBusMessage::ReplyMessage) {
return true; return true;
}
} }
} else if (ps == TDESystemPowerState::Hibernate) {
else if (ps == TDESystemPowerState::Hibernate) { TQT_DBusMessage reply = logindProxy.sendWithReply("Hibernate", params);
TQT_DBusMessage msg = TQT_DBusMessage::methodCall( if (reply.type() == TQT_DBusMessage::ReplyMessage) {
"org.freedesktop.login1", return true;
"/org/freedesktop/login1", }
"org.freedesktop.login1.Manager",
"Hibernate");
TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
if (reply.type() == TQT_DBusMessage::ReplyMessage) {
return true;
} }
} else if (ps == TDESystemPowerState::HybridSuspend) {
else if (ps == TDESystemPowerState::HybridSuspend) { TQT_DBusMessage reply = logindProxy.sendWithReply("HybridSleep", params);
TQT_DBusMessage msg = TQT_DBusMessage::methodCall( if (reply.type() == TQT_DBusMessage::ReplyMessage) {
"org.freedesktop.login1", return true;
"/org/freedesktop/login1", }
"org.freedesktop.login1.Manager",
"HybridSleep");
TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
if (reply.type() == TQT_DBusMessage::ReplyMessage) {
return true;
} }
} }
} }
@ -927,14 +918,15 @@ bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState
TQT_DBusConnection dbusConn; TQT_DBusConnection dbusConn;
dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
if ( dbusConn.isConnected() ) { if ( dbusConn.isConnected() ) {
TQT_DBusMessage msg = TQT_DBusMessage::methodCall( TQT_DBusProxy logindProxy("org.freedesktop.login1", "/org/freedesktop/login1",
"org.trinitydesktop.login1", "org.freedesktop.login1.Manager", dbusConn);
"/org/freedesktop/login1", TQValueList<TQT_DBusData> params;
"org.freedesktop.login1.Manager", params << TQT_DBusData::fromBool(true);
"PowerOff"); if (logindProxy.canSend()) {
TQT_DBusMessage reply = dbusConn.sendWithReply(msg); TQT_DBusMessage reply = logindProxy.sendWithReply("PowerOff", params);
if (reply.type() == TQT_DBusMessage::ReplyMessage) { if (reply.type() == TQT_DBusMessage::ReplyMessage) {
return true; return true;
}
} }
} }
} }
@ -994,14 +986,15 @@ bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState
TQT_DBusConnection dbusConn; TQT_DBusConnection dbusConn;
dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
if ( dbusConn.isConnected() ) { if ( dbusConn.isConnected() ) {
TQT_DBusMessage msg = TQT_DBusMessage::methodCall( TQT_DBusProxy logindProxy("org.freedesktop.login1", "/org/freedesktop/login1",
"org.trinitydesktop.login1", "org.freedesktop.login1.Manager", dbusConn);
"/org/freedesktop/login1", TQValueList<TQT_DBusData> params;
"org.freedesktop.login1.Manager", params << TQT_DBusData::fromBool(true);
"Reboot"); if (logindProxy.canSend()) {
TQT_DBusMessage reply = dbusConn.sendWithReply(msg); TQT_DBusMessage reply = logindProxy.sendWithReply("Reboot", params);
if (reply.type() == TQT_DBusMessage::ReplyMessage) { if (reply.type() == TQT_DBusMessage::ReplyMessage) {
return true; return true;
}
} }
} }
} }

Loading…
Cancel
Save