20 #include "tderootsystemdevice.h"
21 #include "tdestoragedevice.h"
27 #include <dcopclient.h>
28 #include "tdeglobal.h"
29 #include "tdeconfig.h"
30 #include "tdeapplication.h"
31 #include "kstandarddirs.h"
35 #if defined(WITH_TDEHWLIB_DAEMONS) || defined(WITH_UPOWER) || defined(WITH_DEVKITPOWER) || defined(WITH_HAL) || defined(WITH_CONSOLEKIT)
36 #include <tqdbusdata.h>
37 #include <tqdbusmessage.h>
38 #include <tqdbusproxy.h>
39 #include <tqdbusvariant.h>
40 #include <tqdbusconnection.h>
41 #endif // defined(WITH_TDEHWLIB_DAEMONS) || defined(WITH_UPOWER) || defined(WITH_DEVKITPOWER) || defined(WITH_HAL) || defined(WITH_CONSOLEKIT)
43 TDERootSystemDevice::TDERootSystemDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
44 m_hibernationSpace = -1;
47 TDERootSystemDevice::~TDERootSystemDevice() {
50 TDESystemFormFactor::TDESystemFormFactor TDERootSystemDevice::formFactor() {
54 void TDERootSystemDevice::internalSetFormFactor(TDESystemFormFactor::TDESystemFormFactor ff) {
58 TDESystemPowerStateList TDERootSystemDevice::powerStates() {
62 void TDERootSystemDevice::internalSetPowerStates(TDESystemPowerStateList ps) {
66 TDESystemHibernationMethodList TDERootSystemDevice::hibernationMethods() {
67 return m_hibernationMethods;
70 void TDERootSystemDevice::internalSetHibernationMethods(TDESystemHibernationMethodList hm) {
71 m_hibernationMethods = hm;
74 TDESystemHibernationMethod::TDESystemHibernationMethod TDERootSystemDevice::hibernationMethod() {
75 return m_hibernationMethod;
78 void TDERootSystemDevice::internalSetHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
79 m_hibernationMethod = hm;
82 unsigned long TDERootSystemDevice::diskSpaceNeededForHibernation() {
83 return m_hibernationSpace;
86 void TDERootSystemDevice::internalSetDiskSpaceNeededForHibernation(
unsigned long sz) {
87 m_hibernationSpace = sz;
90 bool 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();
113 #endif // WITH_TDEHWLIB_DAEMONS
118 bool 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();
146 #endif // WITH_TDEHWLIB_DAEMONS
151 bool 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();
179 #endif // WITH_TDEHWLIB_DAEMONS
184 bool 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");
212 #endif // WITH_LOGINDPOWER
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();
248 #endif// WITH_DEVKITPOWER
252 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
253 if (dbusConn.isConnected()) {
254 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
255 if (halProperties.canSend()) {
257 TQValueList<TQT_DBusData> params;
258 TQT_DBusMessage reply;
260 params << TQT_DBusData::fromString(
"power_management.can_suspend");
261 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
262 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
263 return reply[0].toBool();
266 params << TQT_DBusData::fromString(
"power_management.can_suspend_to_ram");
267 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
268 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
269 return reply[0].toBool();
276 #ifdef WITH_TDEHWLIB_DAEMONS
278 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
279 if (dbusConn.isConnected()) {
281 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
282 "org.trinitydesktop.hardwarecontrol",
283 "/org/trinitydesktop/hardwarecontrol",
284 "org.trinitydesktop.hardwarecontrol.Power",
286 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
287 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
288 return reply[0].toBool();
292 #endif // WITH_TDEHWLIB_DAEMONS
297 bool TDERootSystemDevice::canHibernate() {
298 TQString statenode =
"/sys/power/state";
299 int rval = access (statenode.ascii(), W_OK);
301 if (powerStates().contains(TDESystemPowerState::Hibernate)) {
309 #ifdef WITH_LOGINDPOWER
311 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
312 if (dbusConn.isConnected()) {
314 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
315 "org.freedesktop.login1",
316 "/org/freedesktop/login1",
317 "org.freedesktop.login1.Manager",
319 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
320 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
321 return (reply[0].toString() ==
"yes");
325 #endif // WITH_LOGINDPOWER
329 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
330 if (dbusConn.isConnected()) {
331 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
332 if (upowerProperties.canSend()) {
334 TQValueList<TQT_DBusData> params;
335 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
336 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
337 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
338 return reply[0].toVariant().value.toBool();
345 #ifdef WITH_DEVKITPOWER
347 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
348 if (dbusConn.isConnected()) {
349 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
350 if (devkitpowerProperties.canSend()) {
352 TQValueList<TQT_DBusData> params;
353 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
354 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
355 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
356 return reply[0].toVariant().value.toBool();
361 #endif// WITH_DEVKITPOWER
365 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
366 if (dbusConn.isConnected()) {
367 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
368 if (halProperties.canSend()) {
370 TQValueList<TQT_DBusData> params;
371 TQT_DBusMessage reply;
373 params << TQT_DBusData::fromString(
"power_management.can_hibernate");
374 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
375 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
376 return reply[0].toBool();
379 params << TQT_DBusData::fromString(
"power_management.can_suspend_to_disk");
380 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
381 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
382 return reply[0].toBool();
389 #ifdef WITH_TDEHWLIB_DAEMONS
391 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
392 if (dbusConn.isConnected()) {
394 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
395 "org.trinitydesktop.hardwarecontrol",
396 "/org/trinitydesktop/hardwarecontrol",
397 "org.trinitydesktop.hardwarecontrol.Power",
399 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
400 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
401 return reply[0].toBool();
405 #endif // WITH_TDEHWLIB_DAEMONS
410 bool TDERootSystemDevice::canPowerOff() {
412 config.setGroup(
"General" );
413 if (!config.readBoolEntry(
"offerShutdown",
true )) {
417 #ifdef WITH_LOGINDPOWER
419 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
420 if (dbusConn.isConnected()) {
422 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
423 "org.freedesktop.login1",
424 "/org/freedesktop/login1",
425 "org.freedesktop.login1.Manager",
427 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
428 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
429 return (reply[0].toString() ==
"yes");
433 #endif // WITH_LOGINDPOWER
435 #ifdef WITH_CONSOLEKIT
437 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
438 if (dbusConn.isConnected()) {
440 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
441 "org.freedesktop.ConsoleKit",
442 "/org/freedesktop/ConsoleKit/Manager",
443 "org.freedesktop.ConsoleKit.Manager",
445 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
446 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
447 return reply[0].toBool();
451 #endif // WITH_CONSOLEKIT
462 bool TDERootSystemDevice::canReboot() {
464 config.setGroup(
"General" );
465 if (!config.readBoolEntry(
"offerShutdown",
true )) {
469 #ifdef WITH_LOGINDPOWER
471 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
472 if (dbusConn.isConnected()) {
474 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
475 "org.freedesktop.login1",
476 "/org/freedesktop/login1",
477 "org.freedesktop.login1.Manager",
479 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
480 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
481 return (reply[0].toString() ==
"yes");
485 #endif // WITH_LOGINDPOWER
487 #ifdef WITH_CONSOLEKIT
489 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
490 if (dbusConn.isConnected()) {
492 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
493 "org.freedesktop.ConsoleKit",
494 "/org/freedesktop/ConsoleKit/Manager",
495 "org.freedesktop.ConsoleKit.Manager",
497 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
498 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
499 return reply[0].toBool();
503 #endif // WITH_CONSOLEKIT
514 void TDERootSystemDevice::setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
515 TQString hibernationnode =
"/sys/power/disk";
516 TQFile file( hibernationnode );
517 if ( file.open( IO_WriteOnly ) ) {
518 TQString hibernationCommand;
519 if (hm == TDESystemHibernationMethod::Platform) {
520 hibernationCommand =
"platform";
522 if (hm == TDESystemHibernationMethod::Shutdown) {
523 hibernationCommand =
"shutdown";
525 if (hm == TDESystemHibernationMethod::Reboot) {
526 hibernationCommand =
"reboot";
528 if (hm == TDESystemHibernationMethod::TestProc) {
529 hibernationCommand =
"testproc";
531 if (hm == TDESystemHibernationMethod::Test) {
532 hibernationCommand =
"test";
534 TQTextStream stream( &file );
535 stream << hibernationCommand;
540 #ifdef WITH_TDEHWLIB_DAEMONS
542 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
543 if (dbusConn.isConnected()) {
544 TQT_DBusProxy hardwareControl(
"org.trinitydesktop.hardwarecontrol",
"/org/trinitydesktop/hardwarecontrol",
"org.trinitydesktop.hardwarecontrol.Power", dbusConn);
545 if (hardwareControl.canSend()) {
547 TQValueList<TQT_DBusData> params;
548 TQString hibernationCommand;
549 if (hm == TDESystemHibernationMethod::Platform) {
550 hibernationCommand =
"platform";
552 if (hm == TDESystemHibernationMethod::Shutdown) {
553 hibernationCommand =
"shutdown";
555 if (hm == TDESystemHibernationMethod::Reboot) {
556 hibernationCommand =
"reboot";
558 if (hm == TDESystemHibernationMethod::TestProc) {
559 hibernationCommand =
"testproc";
561 if (hm == TDESystemHibernationMethod::Test) {
562 hibernationCommand =
"test";
564 params << TQT_DBusData::fromString(hibernationCommand);
565 TQT_DBusMessage reply = hardwareControl.sendWithReply(
"SetHibernationMethod", params);
566 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
572 #endif // WITH_TDEHWLIB_DAEMONS
576 bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState ps) {
577 if ((ps == TDESystemPowerState::Standby) || (ps == TDESystemPowerState::Freeze) || (ps == TDESystemPowerState::Suspend) || (ps == TDESystemPowerState::Hibernate)) {
578 TQString statenode =
"/sys/power/state";
579 TQFile file( statenode );
580 if ( file.open( IO_WriteOnly ) ) {
581 TQString powerCommand;
582 if (ps == TDESystemPowerState::Standby) {
583 powerCommand =
"standby";
585 if (ps == TDESystemPowerState::Freeze) {
586 powerCommand =
"freeze";
588 if (ps == TDESystemPowerState::Suspend) {
589 powerCommand =
"mem";
591 if (ps == TDESystemPowerState::Hibernate) {
592 powerCommand =
"disk";
594 TQTextStream stream( &file );
595 stream << powerCommand;
600 #ifdef WITH_LOGINDPOWER
603 TQT_DBusConnection dbusConn;
604 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
605 if ( dbusConn.isConnected() ) {
606 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
607 "org.freedesktop.login1.Manager", dbusConn);
608 TQValueList<TQT_DBusData> params;
609 params << TQT_DBusData::fromBool(
true);
610 if (logindProxy.canSend()) {
611 if (ps == TDESystemPowerState::Suspend) {
612 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Suspend", params);
613 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
617 else if (ps == TDESystemPowerState::Hibernate) {
618 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Hibernate", params);
619 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
626 #endif // WITH_LOGINDPOWER
630 TQT_DBusConnection dbusConn;
631 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
632 if ( dbusConn.isConnected() ) {
633 if (ps == TDESystemPowerState::Suspend) {
634 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
635 "org.freedesktop.UPower",
636 "/org/freedesktop/UPower",
637 "org.freedesktop.UPower",
639 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
640 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
644 else if (ps == TDESystemPowerState::Hibernate) {
645 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
646 "org.freedesktop.UPower",
647 "/org/freedesktop/UPower",
648 "org.freedesktop.UPower",
650 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
651 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
657 #endif // WITH_UPOWER
659 #ifdef WITH_DEVKITPOWER
661 TQT_DBusConnection dbusConn;
662 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
663 if ( dbusConn.isConnected() ) {
664 if (ps == TDESystemPowerState::Suspend) {
665 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
666 "org.freedesktop.DeviceKit.Power",
667 "/org/freedesktop/DeviceKit/Power",
668 "org.freedesktop.DeviceKit.Power",
670 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
671 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
675 else if (ps == TDESystemPowerState::Hibernate) {
676 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
677 "org.freedesktop.DeviceKit.Power",
678 "/org/freedesktop/DeviceKit/Power",
679 "org.freedesktop.DeviceKit.Power",
681 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
682 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
688 #endif // WITH_DEVKITPOWER
692 TQT_DBusConnection dbusConn;
693 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
694 if ( dbusConn.isConnected() ) {
695 if (ps == TDESystemPowerState::Suspend) {
696 TQT_DBusProxy halPowerManagement(
697 "org.freedesktop.Hal",
698 "/org/freedesktop/Hal/devices/computer",
699 "org.freedesktop.Hal.Device.SystemPowerManagement",
701 TQValueList<TQT_DBusData> params;
702 params << TQT_DBusData::fromInt32(0);
703 TQT_DBusMessage reply = halPowerManagement.sendWithReply(
"Suspend", params);
704 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
708 else if (ps == TDESystemPowerState::Hibernate) {
709 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
710 "org.freedesktop.Hal",
711 "/org/freedesktop/Hal/devices/computer",
712 "org.freedesktop.Hal.Device.SystemPowerManagement",
714 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
715 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
723 #ifdef WITH_TDEHWLIB_DAEMONS
725 TQT_DBusConnection dbusConn;
726 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
727 if ( dbusConn.isConnected() ) {
728 if (ps == TDESystemPowerState::Standby) {
729 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
730 "org.trinitydesktop.hardwarecontrol",
731 "/org/trinitydesktop/hardwarecontrol",
732 "org.trinitydesktop.hardwarecontrol.Power",
734 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
735 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
739 else if (ps == TDESystemPowerState::Freeze) {
740 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
741 "org.trinitydesktop.hardwarecontrol",
742 "/org/trinitydesktop/hardwarecontrol",
743 "org.trinitydesktop.hardwarecontrol.Power",
745 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
746 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
750 else if (ps == TDESystemPowerState::Suspend) {
751 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
752 "org.trinitydesktop.hardwarecontrol",
753 "/org/trinitydesktop/hardwarecontrol",
754 "org.trinitydesktop.hardwarecontrol.Power",
756 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
757 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
761 else if (ps == TDESystemPowerState::Hibernate) {
762 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
763 "org.trinitydesktop.hardwarecontrol",
764 "/org/trinitydesktop/hardwarecontrol",
765 "org.trinitydesktop.hardwarecontrol.Power",
767 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
768 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
774 #endif // WITH_TDEHWLIB_DAEMONS
778 else if (ps == TDESystemPowerState::PowerOff) {
780 config.setGroup(
"General" );
781 if (!config.readBoolEntry(
"offerShutdown",
true )) {
784 #ifdef WITH_LOGINDPOWER
786 TQT_DBusConnection dbusConn;
787 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
788 if ( dbusConn.isConnected() ) {
789 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
790 "org.freedesktop.login1.Manager", dbusConn);
791 TQValueList<TQT_DBusData> params;
792 params << TQT_DBusData::fromBool(
true);
793 if (logindProxy.canSend()) {
794 TQT_DBusMessage reply = logindProxy.sendWithReply(
"PowerOff", params);
795 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
801 #endif // WITH_LOGINDPOWER
802 #ifdef WITH_CONSOLEKIT
804 TQT_DBusConnection dbusConn;
805 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
806 if ( dbusConn.isConnected() ) {
807 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
808 "org.freedesktop.ConsoleKit",
809 "/org/freedesktop/ConsoleKit/Manager",
810 "org.freedesktop.ConsoleKit.Manager",
812 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
813 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
818 #endif // WITH_CONSOLEKIT
822 TQDataStream arg(data, IO_WriteOnly);
823 arg << (int)0 << (
int)2 << (int)2;
824 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
829 else if (ps == TDESystemPowerState::Reboot) {
831 config.setGroup(
"General" );
832 if (!config.readBoolEntry(
"offerShutdown",
true )) {
835 #ifdef WITH_LOGINDPOWER
837 TQT_DBusConnection dbusConn;
838 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
839 if ( dbusConn.isConnected() ) {
840 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
841 "org.freedesktop.login1.Manager", dbusConn);
842 TQValueList<TQT_DBusData> params;
843 params << TQT_DBusData::fromBool(
true);
844 if (logindProxy.canSend()) {
845 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Reboot", params);
846 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
852 #endif // WITH_LOGINDPOWER
853 #ifdef WITH_CONSOLEKIT
855 TQT_DBusConnection dbusConn;
856 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
857 if ( dbusConn.isConnected() ) {
858 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
859 "org.freedesktop.ConsoleKit",
860 "/org/freedesktop/ConsoleKit/Manager",
861 "org.freedesktop.ConsoleKit.Manager",
863 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
864 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
869 #endif // WITH_CONSOLEKIT
873 TQDataStream arg(data, IO_WriteOnly);
874 arg << (int)0 << (
int)1 << (int)2;
875 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
880 else if (ps == TDESystemPowerState::Active) {
888 #include "tderootsystemdevice.moc"
Access KDE Configuration entries.