20#include "tderootsystemdevice.h"
21#include "tdestoragedevice.h"
27#include <dcopclient.h>
30#include "tdeapplication.h"
31#include "tdestandarddirs.h"
35#if defined(WITH_TDEHWLIB_DAEMONS) || defined(WITH_UPOWER) || defined(WITH_DEVKITPOWER) || defined(WITH_CONSOLEKIT)
36 #include <tqdbusdata.h>
37 #include <tqdbusmessage.h>
38 #include <tqdbusproxy.h>
39 #include <tqdbusvariant.h>
40 #include <tqdbusconnection.h>
43TDERootSystemDevice::TDERootSystemDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
44 m_hibernationSpace = -1;
47TDERootSystemDevice::~TDERootSystemDevice() {
50TDESystemFormFactor::TDESystemFormFactor TDERootSystemDevice::formFactor() {
54void TDERootSystemDevice::internalSetFormFactor(TDESystemFormFactor::TDESystemFormFactor ff) {
58TDESystemPowerStateList TDERootSystemDevice::powerStates() {
62void TDERootSystemDevice::internalSetPowerStates(TDESystemPowerStateList ps) {
66TDESystemHibernationMethodList TDERootSystemDevice::hibernationMethods() {
67 return m_hibernationMethods;
70void TDERootSystemDevice::internalSetHibernationMethods(TDESystemHibernationMethodList hm) {
71 m_hibernationMethods = hm;
74TDESystemHibernationMethod::TDESystemHibernationMethod TDERootSystemDevice::hibernationMethod() {
75 return m_hibernationMethod;
78void TDERootSystemDevice::internalSetHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
79 m_hibernationMethod = hm;
82unsigned long TDERootSystemDevice::diskSpaceNeededForHibernation() {
83 return m_hibernationSpace;
86void TDERootSystemDevice::internalSetDiskSpaceNeededForHibernation(
unsigned long sz) {
87 m_hibernationSpace = sz;
90bool TDERootSystemDevice::canSetHibernationMethod() {
91 TQString hibernationnode =
"/sys/power/disk";
92 int rval = access (hibernationnode.ascii(), W_OK);
97#ifdef WITH_TDEHWLIB_DAEMONS
99 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
100 if (dbusConn.isConnected()) {
102 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
103 "org.trinitydesktop.hardwarecontrol",
104 "/org/trinitydesktop/hardwarecontrol",
105 "org.trinitydesktop.hardwarecontrol.Power",
106 "CanSetHibernationMethod");
107 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
108 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
109 return reply[0].toBool();
118bool TDERootSystemDevice::canStandby() {
119 TQString statenode =
"/sys/power/state";
120 int rval = access (statenode.ascii(), W_OK);
122 if (powerStates().contains(TDESystemPowerState::Standby)) {
130#ifdef WITH_TDEHWLIB_DAEMONS
132 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
133 if (dbusConn.isConnected()) {
135 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
136 "org.trinitydesktop.hardwarecontrol",
137 "/org/trinitydesktop/hardwarecontrol",
138 "org.trinitydesktop.hardwarecontrol.Power",
140 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
141 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
142 return reply[0].toBool();
151bool TDERootSystemDevice::canFreeze() {
152 TQString statenode =
"/sys/power/state";
153 int rval = access (statenode.ascii(), W_OK);
155 if (powerStates().contains(TDESystemPowerState::Freeze)) {
163#ifdef WITH_TDEHWLIB_DAEMONS
165 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
166 if (dbusConn.isConnected()) {
168 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
169 "org.trinitydesktop.hardwarecontrol",
170 "/org/trinitydesktop/hardwarecontrol",
171 "org.trinitydesktop.hardwarecontrol.Power",
173 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
174 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
175 return reply[0].toBool();
184bool TDERootSystemDevice::canSuspend() {
185 TQString statenode =
"/sys/power/state";
186 int rval = access (statenode.ascii(), W_OK);
188 if (powerStates().contains(TDESystemPowerState::Suspend)) {
196#ifdef WITH_LOGINDPOWER
198 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
199 if (dbusConn.isConnected()) {
201 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
202 "org.freedesktop.login1",
203 "/org/freedesktop/login1",
204 "org.freedesktop.login1.Manager",
206 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
207 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
208 return (reply[0].toString() ==
"yes");
216 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
217 if (dbusConn.isConnected()) {
218 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
219 if (upowerProperties.canSend()) {
221 TQValueList<TQT_DBusData> params;
222 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanSuspend");
223 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
224 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
225 return reply[0].toVariant().value.toBool();
232#ifdef WITH_DEVKITPOWER
234 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
235 if (dbusConn.isConnected()) {
236 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
237 if (devkitpowerProperties.canSend()) {
239 TQValueList<TQT_DBusData> params;
240 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanSuspend");
241 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
242 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
243 return reply[0].toVariant().value.toBool();
250#ifdef WITH_TDEHWLIB_DAEMONS
252 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
253 if (dbusConn.isConnected()) {
255 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
256 "org.trinitydesktop.hardwarecontrol",
257 "/org/trinitydesktop/hardwarecontrol",
258 "org.trinitydesktop.hardwarecontrol.Power",
260 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
261 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
262 return reply[0].toBool();
271bool TDERootSystemDevice::canHibernate() {
272 TQString statenode =
"/sys/power/state";
273 TQString disknode =
"/sys/power/disk";
274 int state_rval = access (statenode.ascii(), W_OK);
275 int disk_rval = access (disknode.ascii(), W_OK);
276 if (state_rval == 0 && disk_rval == 0) {
277 if (powerStates().contains(TDESystemPowerState::Hibernate)) {
285#ifdef WITH_LOGINDPOWER
287 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
288 if (dbusConn.isConnected()) {
290 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
291 "org.freedesktop.login1",
292 "/org/freedesktop/login1",
293 "org.freedesktop.login1.Manager",
295 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
296 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
297 return (reply[0].toString() ==
"yes");
305 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
306 if (dbusConn.isConnected()) {
307 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
308 if (upowerProperties.canSend()) {
310 TQValueList<TQT_DBusData> params;
311 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
312 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
313 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
314 return reply[0].toVariant().value.toBool();
321#ifdef WITH_DEVKITPOWER
323 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
324 if (dbusConn.isConnected()) {
325 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
326 if (devkitpowerProperties.canSend()) {
328 TQValueList<TQT_DBusData> params;
329 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
330 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
331 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
332 return reply[0].toVariant().value.toBool();
339#ifdef WITH_TDEHWLIB_DAEMONS
341 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
342 if (dbusConn.isConnected()) {
344 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
345 "org.trinitydesktop.hardwarecontrol",
346 "/org/trinitydesktop/hardwarecontrol",
347 "org.trinitydesktop.hardwarecontrol.Power",
349 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
350 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
351 return reply[0].toBool();
360bool TDERootSystemDevice::canHybridSuspend() {
361 TQString statenode =
"/sys/power/state";
362 TQString disknode =
"/sys/power/disk";
363 int state_rval = access (statenode.ascii(), W_OK);
364 int disk_rval = access (disknode.ascii(), W_OK);
365 if (state_rval == 0 && disk_rval == 0) {
366 if (powerStates().contains(TDESystemPowerState::HybridSuspend)) {
374#ifdef WITH_LOGINDPOWER
376 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
377 if (dbusConn.isConnected()) {
379 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
380 "org.freedesktop.login1",
381 "/org/freedesktop/login1",
382 "org.freedesktop.login1.Manager",
384 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
385 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
386 return (reply[0].toString() ==
"yes");
395#ifdef WITH_TDEHWLIB_DAEMONS
397 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
398 if (dbusConn.isConnected()) {
400 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
401 "org.trinitydesktop.hardwarecontrol",
402 "/org/trinitydesktop/hardwarecontrol",
403 "org.trinitydesktop.hardwarecontrol.Power",
405 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
406 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
407 return reply[0].toBool();
416bool TDERootSystemDevice::canPowerOff() {
418 config.setGroup(
"General" );
419 if (!config.readBoolEntry(
"offerShutdown",
true )) {
423#ifdef WITH_LOGINDPOWER
425 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
426 if (dbusConn.isConnected()) {
428 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
429 "org.freedesktop.login1",
430 "/org/freedesktop/login1",
431 "org.freedesktop.login1.Manager",
433 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
434 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
435 return (reply[0].toString() ==
"yes");
441#ifdef WITH_CONSOLEKIT
443 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
444 if (dbusConn.isConnected()) {
446 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
447 "org.freedesktop.ConsoleKit",
448 "/org/freedesktop/ConsoleKit/Manager",
449 "org.freedesktop.ConsoleKit.Manager",
451 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
452 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
453 return reply[0].toBool();
468bool TDERootSystemDevice::canReboot() {
470 config.setGroup(
"General" );
471 if (!config.readBoolEntry(
"offerShutdown",
true )) {
475#ifdef WITH_LOGINDPOWER
477 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
478 if (dbusConn.isConnected()) {
480 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
481 "org.freedesktop.login1",
482 "/org/freedesktop/login1",
483 "org.freedesktop.login1.Manager",
485 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
486 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
487 return (reply[0].toString() ==
"yes");
493#ifdef WITH_CONSOLEKIT
495 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
496 if (dbusConn.isConnected()) {
498 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
499 "org.freedesktop.ConsoleKit",
500 "/org/freedesktop/ConsoleKit/Manager",
501 "org.freedesktop.ConsoleKit.Manager",
503 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
504 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
505 return reply[0].toBool();
520void TDERootSystemDevice::setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
521 TQString hibernationnode =
"/sys/power/disk";
522 TQFile file( hibernationnode );
523 if ( file.open( IO_WriteOnly ) ) {
524 TQString hibernationCommand;
525 if (hm == TDESystemHibernationMethod::Platform) {
526 hibernationCommand =
"platform";
528 else if (hm == TDESystemHibernationMethod::Shutdown) {
529 hibernationCommand =
"shutdown";
531 else if (hm == TDESystemHibernationMethod::Reboot) {
532 hibernationCommand =
"reboot";
534 else if (hm == TDESystemHibernationMethod::TestProc) {
535 hibernationCommand =
"testproc";
537 else if (hm == TDESystemHibernationMethod::Test) {
538 hibernationCommand =
"test";
540 else if (hm == TDESystemHibernationMethod::Suspend) {
541 hibernationCommand =
"suspend";
543 TQTextStream stream( &file );
544 stream << hibernationCommand;
549#ifdef WITH_TDEHWLIB_DAEMONS
551 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
552 if (dbusConn.isConnected()) {
553 TQT_DBusProxy hardwareControl(
"org.trinitydesktop.hardwarecontrol",
"/org/trinitydesktop/hardwarecontrol",
"org.trinitydesktop.hardwarecontrol.Power", dbusConn);
554 if (hardwareControl.canSend()) {
556 TQValueList<TQT_DBusData> params;
557 TQString hibernationCommand;
558 if (hm == TDESystemHibernationMethod::Platform) {
559 hibernationCommand =
"platform";
561 else if (hm == TDESystemHibernationMethod::Shutdown) {
562 hibernationCommand =
"shutdown";
564 else if (hm == TDESystemHibernationMethod::Reboot) {
565 hibernationCommand =
"reboot";
567 else if (hm == TDESystemHibernationMethod::TestProc) {
568 hibernationCommand =
"testproc";
570 else if (hm == TDESystemHibernationMethod::Test) {
571 hibernationCommand =
"test";
573 else if (hm == TDESystemHibernationMethod::Suspend) {
574 hibernationCommand =
"suspend";
576 params << TQT_DBusData::fromString(hibernationCommand);
577 TQT_DBusMessage reply = hardwareControl.sendWithReply(
"SetHibernationMethod", params);
578 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
588bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState ps) {
589 if ((ps == TDESystemPowerState::Freeze) || (ps == TDESystemPowerState::Standby) ||
590 (ps == TDESystemPowerState::Suspend) || (ps == TDESystemPowerState::Hibernate) ||
591 (ps == TDESystemPowerState::HybridSuspend)) {
592 TQString statenode =
"/sys/power/state";
593 TQString disknode =
"/sys/power/disk";
594 TQFile statefile( statenode );
595 TQFile diskfile( disknode );
596 if ( statefile.open( IO_WriteOnly ) &&
597 ((ps != TDESystemPowerState::Hibernate && ps != TDESystemPowerState::HybridSuspend) ||
598 diskfile.open( IO_WriteOnly )) ) {
599 TQString powerCommand;
600 if (ps == TDESystemPowerState::Freeze) {
601 powerCommand =
"freeze";
603 else if (ps == TDESystemPowerState::Standby) {
604 powerCommand =
"standby";
606 else if (ps == TDESystemPowerState::Suspend) {
607 powerCommand =
"mem";
609 else if (ps == TDESystemPowerState::Hibernate) {
610 powerCommand =
"disk";
611 TQTextStream diskstream( &diskfile );
612 diskstream <<
"platform";
615 else if (ps == TDESystemPowerState::HybridSuspend) {
616 powerCommand =
"disk";
617 TQTextStream diskstream( &diskfile );
618 diskstream <<
"suspend";
621 TQTextStream statestream( &statefile );
622 statestream << powerCommand;
627#ifdef WITH_LOGINDPOWER
630 TQT_DBusConnection dbusConn;
631 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
632 if ( dbusConn.isConnected() ) {
633 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
634 "org.freedesktop.login1.Manager", dbusConn);
635 TQValueList<TQT_DBusData> params;
636 params << TQT_DBusData::fromBool(
true);
637 if (logindProxy.canSend()) {
638 if (ps == TDESystemPowerState::Suspend) {
639 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Suspend", params);
640 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
644 else if (ps == TDESystemPowerState::Hibernate) {
645 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Hibernate", params);
646 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
650 else if (ps == TDESystemPowerState::HybridSuspend) {
651 TQT_DBusMessage reply = logindProxy.sendWithReply(
"HybridSleep", params);
652 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
664 TQT_DBusConnection dbusConn;
665 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
666 if ( dbusConn.isConnected() ) {
667 if (ps == TDESystemPowerState::Suspend) {
668 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
669 "org.freedesktop.UPower",
670 "/org/freedesktop/UPower",
671 "org.freedesktop.UPower",
673 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
674 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
678 else if (ps == TDESystemPowerState::Hibernate) {
679 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
680 "org.freedesktop.UPower",
681 "/org/freedesktop/UPower",
682 "org.freedesktop.UPower",
684 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
685 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
693#ifdef WITH_DEVKITPOWER
696 TQT_DBusConnection dbusConn;
697 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
698 if ( dbusConn.isConnected() ) {
699 if (ps == TDESystemPowerState::Suspend) {
700 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
701 "org.freedesktop.DeviceKit.Power",
702 "/org/freedesktop/DeviceKit/Power",
703 "org.freedesktop.DeviceKit.Power",
705 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
706 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
710 else if (ps == TDESystemPowerState::Hibernate) {
711 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
712 "org.freedesktop.DeviceKit.Power",
713 "/org/freedesktop/DeviceKit/Power",
714 "org.freedesktop.DeviceKit.Power",
716 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
717 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
725#ifdef WITH_TDEHWLIB_DAEMONS
727 TQT_DBusConnection dbusConn;
728 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
729 if ( dbusConn.isConnected() ) {
730 if (ps == TDESystemPowerState::Standby) {
731 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
732 "org.trinitydesktop.hardwarecontrol",
733 "/org/trinitydesktop/hardwarecontrol",
734 "org.trinitydesktop.hardwarecontrol.Power",
736 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
737 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
741 else if (ps == TDESystemPowerState::Freeze) {
742 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
743 "org.trinitydesktop.hardwarecontrol",
744 "/org/trinitydesktop/hardwarecontrol",
745 "org.trinitydesktop.hardwarecontrol.Power",
747 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
748 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
752 else if (ps == TDESystemPowerState::Suspend) {
753 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
754 "org.trinitydesktop.hardwarecontrol",
755 "/org/trinitydesktop/hardwarecontrol",
756 "org.trinitydesktop.hardwarecontrol.Power",
758 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
759 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
763 else if (ps == TDESystemPowerState::Hibernate) {
764 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
765 "org.trinitydesktop.hardwarecontrol",
766 "/org/trinitydesktop/hardwarecontrol",
767 "org.trinitydesktop.hardwarecontrol.Power",
769 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
770 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
774 else if (ps == TDESystemPowerState::HybridSuspend) {
775 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
776 "org.trinitydesktop.hardwarecontrol",
777 "/org/trinitydesktop/hardwarecontrol",
778 "org.trinitydesktop.hardwarecontrol.Power",
780 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
781 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
791 else if (ps == TDESystemPowerState::PowerOff) {
793 config.setGroup(
"General" );
794 if (!config.readBoolEntry(
"offerShutdown",
true )) {
797#ifdef WITH_LOGINDPOWER
799 TQT_DBusConnection dbusConn;
800 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
801 if ( dbusConn.isConnected() ) {
802 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
803 "org.freedesktop.login1.Manager", dbusConn);
804 TQValueList<TQT_DBusData> params;
805 params << TQT_DBusData::fromBool(
true);
806 if (logindProxy.canSend()) {
807 TQT_DBusMessage reply = logindProxy.sendWithReply(
"PowerOff", params);
808 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
815#ifdef WITH_CONSOLEKIT
817 TQT_DBusConnection dbusConn;
818 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
819 if ( dbusConn.isConnected() ) {
820 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
821 "org.freedesktop.ConsoleKit",
822 "/org/freedesktop/ConsoleKit/Manager",
823 "org.freedesktop.ConsoleKit.Manager",
825 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
826 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
852 TQDataStream arg(data, IO_WriteOnly);
853 arg << (int)0 << (
int)2 << (int)2;
854 if ( tdeApp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
859 else if (ps == TDESystemPowerState::Reboot) {
861 config.setGroup(
"General" );
862 if (!config.readBoolEntry(
"offerShutdown",
true )) {
865#ifdef WITH_LOGINDPOWER
867 TQT_DBusConnection dbusConn;
868 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
869 if ( dbusConn.isConnected() ) {
870 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
871 "org.freedesktop.login1.Manager", dbusConn);
872 TQValueList<TQT_DBusData> params;
873 params << TQT_DBusData::fromBool(
true);
874 if (logindProxy.canSend()) {
875 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Reboot", params);
876 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
883#ifdef WITH_CONSOLEKIT
885 TQT_DBusConnection dbusConn;
886 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
887 if ( dbusConn.isConnected() ) {
888 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
889 "org.freedesktop.ConsoleKit",
890 "/org/freedesktop/ConsoleKit/Manager",
891 "org.freedesktop.ConsoleKit.Manager",
893 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
894 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
903 TQDataStream arg(data, IO_WriteOnly);
904 arg << (int)0 << (
int)1 << (int)2;
905 if ( tdeApp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
910 else if (ps == TDESystemPowerState::Active) {
918#include "tderootsystemdevice.moc"
Access KDE Configuration entries.