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 602 TQT_DBusConnection dbusConn;
603 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
604 if ( dbusConn.isConnected() ) {
605 if (ps == TDESystemPowerState::Suspend) {
606 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
607 "org.freedesktop.login1",
608 "/org/freedesktop/login1",
609 "org.freedesktop.login1.Manager",
611 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
612 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
616 else if (ps == TDESystemPowerState::Hibernate) {
617 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
618 "org.freedesktop.login1",
619 "/org/freedesktop/login1",
620 "org.freedesktop.login1.Manager",
622 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
623 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
629 #endif // WITH_LOGINDPOWER 633 TQT_DBusConnection dbusConn;
634 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
635 if ( dbusConn.isConnected() ) {
636 if (ps == TDESystemPowerState::Suspend) {
637 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
638 "org.freedesktop.UPower",
639 "/org/freedesktop/UPower",
640 "org.freedesktop.UPower",
642 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
643 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
647 else if (ps == TDESystemPowerState::Hibernate) {
648 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
649 "org.freedesktop.UPower",
650 "/org/freedesktop/UPower",
651 "org.freedesktop.UPower",
653 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
654 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
660 #endif // WITH_UPOWER 662 #ifdef WITH_DEVKITPOWER 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.DeviceKit.Power",
670 "/org/freedesktop/DeviceKit/Power",
671 "org.freedesktop.DeviceKit.Power",
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.DeviceKit.Power",
681 "/org/freedesktop/DeviceKit/Power",
682 "org.freedesktop.DeviceKit.Power",
684 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
685 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
691 #endif // WITH_DEVKITPOWER 695 TQT_DBusConnection dbusConn;
696 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
697 if ( dbusConn.isConnected() ) {
698 if (ps == TDESystemPowerState::Suspend) {
699 TQT_DBusProxy halPowerManagement(
700 "org.freedesktop.Hal",
701 "/org/freedesktop/Hal/devices/computer",
702 "org.freedesktop.Hal.Device.SystemPowerManagement",
704 TQValueList<TQT_DBusData> params;
705 params << TQT_DBusData::fromInt32(0);
706 TQT_DBusMessage reply = halPowerManagement.sendWithReply(
"Suspend", params);
707 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
711 else if (ps == TDESystemPowerState::Hibernate) {
712 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
713 "org.freedesktop.Hal",
714 "/org/freedesktop/Hal/devices/computer",
715 "org.freedesktop.Hal.Device.SystemPowerManagement",
717 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
718 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
726 #ifdef WITH_TDEHWLIB_DAEMONS 728 TQT_DBusConnection dbusConn;
729 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
730 if ( dbusConn.isConnected() ) {
731 if (ps == TDESystemPowerState::Standby) {
732 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
733 "org.trinitydesktop.hardwarecontrol",
734 "/org/trinitydesktop/hardwarecontrol",
735 "org.trinitydesktop.hardwarecontrol.Power",
737 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
738 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
742 else if (ps == TDESystemPowerState::Freeze) {
743 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
744 "org.trinitydesktop.hardwarecontrol",
745 "/org/trinitydesktop/hardwarecontrol",
746 "org.trinitydesktop.hardwarecontrol.Power",
748 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
749 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
753 else if (ps == TDESystemPowerState::Suspend) {
754 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
755 "org.trinitydesktop.hardwarecontrol",
756 "/org/trinitydesktop/hardwarecontrol",
757 "org.trinitydesktop.hardwarecontrol.Power",
759 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
760 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
764 else if (ps == TDESystemPowerState::Hibernate) {
765 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
766 "org.trinitydesktop.hardwarecontrol",
767 "/org/trinitydesktop/hardwarecontrol",
768 "org.trinitydesktop.hardwarecontrol.Power",
770 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
771 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
777 #endif // WITH_TDEHWLIB_DAEMONS 781 else if (ps == TDESystemPowerState::PowerOff) {
783 config.setGroup(
"General" );
784 if (!config.readBoolEntry(
"offerShutdown",
true )) {
787 #ifdef WITH_LOGINDPOWER 789 TQT_DBusConnection dbusConn;
790 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
791 if ( dbusConn.isConnected() ) {
792 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
793 "org.trinitydesktop.login1",
794 "/org/freedesktop/login1",
795 "org.freedesktop.login1.Manager",
797 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
798 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
803 #endif // WITH_LOGINDPOWER 804 #ifdef WITH_CONSOLEKIT 806 TQT_DBusConnection dbusConn;
807 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
808 if ( dbusConn.isConnected() ) {
809 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
810 "org.freedesktop.ConsoleKit",
811 "/org/freedesktop/ConsoleKit/Manager",
812 "org.freedesktop.ConsoleKit.Manager",
814 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
815 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
820 #endif // WITH_CONSOLEKIT 824 TQDataStream arg(data, IO_WriteOnly);
825 arg << (int)0 << (
int)2 << (int)2;
826 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
831 else if (ps == TDESystemPowerState::Reboot) {
833 config.setGroup(
"General" );
834 if (!config.readBoolEntry(
"offerShutdown",
true )) {
837 #ifdef WITH_LOGINDPOWER 839 TQT_DBusConnection dbusConn;
840 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
841 if ( dbusConn.isConnected() ) {
842 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
843 "org.trinitydesktop.login1",
844 "/org/freedesktop/login1",
845 "org.freedesktop.login1.Manager",
847 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
848 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
853 #endif // WITH_LOGINDPOWER 854 #ifdef WITH_CONSOLEKIT 856 TQT_DBusConnection dbusConn;
857 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
858 if ( dbusConn.isConnected() ) {
859 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
860 "org.freedesktop.ConsoleKit",
861 "/org/freedesktop/ConsoleKit/Manager",
862 "org.freedesktop.ConsoleKit.Manager",
864 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
865 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
870 #endif // WITH_CONSOLEKIT 874 TQDataStream arg(data, IO_WriteOnly);
875 arg << (int)0 << (
int)1 << (int)2;
876 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
881 else if (ps == TDESystemPowerState::Active) {
889 #include "tderootsystemdevice.moc" Access KDE Configuration entries.