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>
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();
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();
151 bool TDERootSystemDevice::canFreeze() {
152 int rval1 = access (
"/var/lib/q4os/disable_can_freeze.stp", R_OK);
157 TQString statenode =
"/sys/power/state";
158 int rval = access (statenode.ascii(), W_OK);
160 if (powerStates().contains(TDESystemPowerState::Freeze)) {
168 #ifdef WITH_TDEHWLIB_DAEMONS
170 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
171 if (dbusConn.isConnected()) {
173 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
174 "org.trinitydesktop.hardwarecontrol",
175 "/org/trinitydesktop/hardwarecontrol",
176 "org.trinitydesktop.hardwarecontrol.Power",
178 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
179 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
180 return reply[0].toBool();
189 bool TDERootSystemDevice::canSuspend() {
190 TQString statenode =
"/sys/power/state";
191 int rval = access (statenode.ascii(), W_OK);
193 if (powerStates().contains(TDESystemPowerState::Suspend)) {
201 #ifdef WITH_LOGINDPOWER
203 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
204 if (dbusConn.isConnected()) {
206 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
207 "org.freedesktop.login1",
208 "/org/freedesktop/login1",
209 "org.freedesktop.login1.Manager",
211 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
212 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
213 return (reply[0].toString() ==
"yes");
221 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
222 if (dbusConn.isConnected()) {
223 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
224 if (upowerProperties.canSend()) {
226 TQValueList<TQT_DBusData> params;
227 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanSuspend");
228 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
229 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
230 return reply[0].toVariant().value.toBool();
237 #ifdef WITH_DEVKITPOWER
239 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
240 if (dbusConn.isConnected()) {
241 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
242 if (devkitpowerProperties.canSend()) {
244 TQValueList<TQT_DBusData> params;
245 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanSuspend");
246 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
247 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
248 return reply[0].toVariant().value.toBool();
257 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
258 if (dbusConn.isConnected()) {
259 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
260 if (halProperties.canSend()) {
262 TQValueList<TQT_DBusData> params;
263 TQT_DBusMessage reply;
265 params << TQT_DBusData::fromString(
"power_management.can_suspend");
266 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
267 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
268 return reply[0].toBool();
271 params << TQT_DBusData::fromString(
"power_management.can_suspend_to_ram");
272 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
273 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
274 return reply[0].toBool();
281 #ifdef WITH_TDEHWLIB_DAEMONS
283 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
284 if (dbusConn.isConnected()) {
286 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
287 "org.trinitydesktop.hardwarecontrol",
288 "/org/trinitydesktop/hardwarecontrol",
289 "org.trinitydesktop.hardwarecontrol.Power",
291 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
292 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
293 return reply[0].toBool();
302 bool TDERootSystemDevice::canHibernate() {
303 TQString statenode =
"/sys/power/state";
304 int rval = access (statenode.ascii(), W_OK);
306 if (powerStates().contains(TDESystemPowerState::Hibernate)) {
314 #ifdef WITH_LOGINDPOWER
316 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
317 if (dbusConn.isConnected()) {
319 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
320 "org.freedesktop.login1",
321 "/org/freedesktop/login1",
322 "org.freedesktop.login1.Manager",
324 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
325 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
326 return (reply[0].toString() ==
"yes");
334 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
335 if (dbusConn.isConnected()) {
336 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
337 if (upowerProperties.canSend()) {
339 TQValueList<TQT_DBusData> params;
340 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
341 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
342 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
343 return reply[0].toVariant().value.toBool();
350 #ifdef WITH_DEVKITPOWER
352 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
353 if (dbusConn.isConnected()) {
354 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
355 if (devkitpowerProperties.canSend()) {
357 TQValueList<TQT_DBusData> params;
358 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
359 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
360 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
361 return reply[0].toVariant().value.toBool();
370 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
371 if (dbusConn.isConnected()) {
372 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
373 if (halProperties.canSend()) {
375 TQValueList<TQT_DBusData> params;
376 TQT_DBusMessage reply;
378 params << TQT_DBusData::fromString(
"power_management.can_hibernate");
379 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
380 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
381 return reply[0].toBool();
384 params << TQT_DBusData::fromString(
"power_management.can_suspend_to_disk");
385 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
386 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
387 return reply[0].toBool();
394 #ifdef WITH_TDEHWLIB_DAEMONS
396 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
397 if (dbusConn.isConnected()) {
399 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
400 "org.trinitydesktop.hardwarecontrol",
401 "/org/trinitydesktop/hardwarecontrol",
402 "org.trinitydesktop.hardwarecontrol.Power",
404 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
405 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
406 return reply[0].toBool();
415 bool TDERootSystemDevice::canPowerOff() {
417 config.setGroup(
"General" );
418 if (!config.readBoolEntry(
"offerShutdown",
true )) {
422 #ifdef WITH_LOGINDPOWER
424 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
425 if (dbusConn.isConnected()) {
427 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
428 "org.freedesktop.login1",
429 "/org/freedesktop/login1",
430 "org.freedesktop.login1.Manager",
432 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
433 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
434 return (reply[0].toString() ==
"yes");
440 #ifdef WITH_CONSOLEKIT
442 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
443 if (dbusConn.isConnected()) {
445 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
446 "org.freedesktop.ConsoleKit",
447 "/org/freedesktop/ConsoleKit/Manager",
448 "org.freedesktop.ConsoleKit.Manager",
450 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
451 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
452 return reply[0].toBool();
467 bool TDERootSystemDevice::canReboot() {
469 config.setGroup(
"General" );
470 if (!config.readBoolEntry(
"offerShutdown",
true )) {
474 #ifdef WITH_LOGINDPOWER
476 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
477 if (dbusConn.isConnected()) {
479 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
480 "org.freedesktop.login1",
481 "/org/freedesktop/login1",
482 "org.freedesktop.login1.Manager",
484 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
485 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
486 return (reply[0].toString() ==
"yes");
492 #ifdef WITH_CONSOLEKIT
494 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
495 if (dbusConn.isConnected()) {
497 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
498 "org.freedesktop.ConsoleKit",
499 "/org/freedesktop/ConsoleKit/Manager",
500 "org.freedesktop.ConsoleKit.Manager",
502 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
503 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
504 return reply[0].toBool();
519 void TDERootSystemDevice::setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
520 TQString hibernationnode =
"/sys/power/disk";
521 TQFile file( hibernationnode );
522 if ( file.open( IO_WriteOnly ) ) {
523 TQString hibernationCommand;
524 if (hm == TDESystemHibernationMethod::Platform) {
525 hibernationCommand =
"platform";
527 if (hm == TDESystemHibernationMethod::Shutdown) {
528 hibernationCommand =
"shutdown";
530 if (hm == TDESystemHibernationMethod::Reboot) {
531 hibernationCommand =
"reboot";
533 if (hm == TDESystemHibernationMethod::TestProc) {
534 hibernationCommand =
"testproc";
536 if (hm == TDESystemHibernationMethod::Test) {
537 hibernationCommand =
"test";
539 TQTextStream stream( &file );
540 stream << hibernationCommand;
545 #ifdef WITH_TDEHWLIB_DAEMONS
547 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
548 if (dbusConn.isConnected()) {
549 TQT_DBusProxy hardwareControl(
"org.trinitydesktop.hardwarecontrol",
"/org/trinitydesktop/hardwarecontrol",
"org.trinitydesktop.hardwarecontrol.Power", dbusConn);
550 if (hardwareControl.canSend()) {
552 TQValueList<TQT_DBusData> params;
553 TQString hibernationCommand;
554 if (hm == TDESystemHibernationMethod::Platform) {
555 hibernationCommand =
"platform";
557 if (hm == TDESystemHibernationMethod::Shutdown) {
558 hibernationCommand =
"shutdown";
560 if (hm == TDESystemHibernationMethod::Reboot) {
561 hibernationCommand =
"reboot";
563 if (hm == TDESystemHibernationMethod::TestProc) {
564 hibernationCommand =
"testproc";
566 if (hm == TDESystemHibernationMethod::Test) {
567 hibernationCommand =
"test";
569 params << TQT_DBusData::fromString(hibernationCommand);
570 TQT_DBusMessage reply = hardwareControl.sendWithReply(
"SetHibernationMethod", params);
571 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
581 bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState ps) {
582 if ((ps == TDESystemPowerState::Standby) || (ps == TDESystemPowerState::Freeze) || (ps == TDESystemPowerState::Suspend) || (ps == TDESystemPowerState::Hibernate)) {
583 TQString statenode =
"/sys/power/state";
584 TQFile file( statenode );
585 if ( file.open( IO_WriteOnly ) ) {
586 TQString powerCommand;
587 if (ps == TDESystemPowerState::Standby) {
588 powerCommand =
"standby";
590 if (ps == TDESystemPowerState::Freeze) {
591 powerCommand =
"freeze";
593 if (ps == TDESystemPowerState::Suspend) {
594 powerCommand =
"mem";
596 if (ps == TDESystemPowerState::Hibernate) {
597 powerCommand =
"disk";
599 TQTextStream stream( &file );
600 stream << powerCommand;
605 #ifdef WITH_LOGINDPOWER
608 TQT_DBusConnection dbusConn;
609 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
610 if ( dbusConn.isConnected() ) {
611 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
612 "org.freedesktop.login1.Manager", dbusConn);
613 TQValueList<TQT_DBusData> params;
614 params << TQT_DBusData::fromBool(
true);
615 if (logindProxy.canSend()) {
616 if (ps == TDESystemPowerState::Suspend) {
617 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Suspend", params);
618 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
622 else if (ps == TDESystemPowerState::Hibernate) {
623 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Hibernate", params);
624 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
635 TQT_DBusConnection dbusConn;
636 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
637 if ( dbusConn.isConnected() ) {
638 if (ps == TDESystemPowerState::Suspend) {
639 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
640 "org.freedesktop.UPower",
641 "/org/freedesktop/UPower",
642 "org.freedesktop.UPower",
644 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
645 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
649 else if (ps == TDESystemPowerState::Hibernate) {
650 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
651 "org.freedesktop.UPower",
652 "/org/freedesktop/UPower",
653 "org.freedesktop.UPower",
655 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
656 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
664 #ifdef WITH_DEVKITPOWER
666 TQT_DBusConnection dbusConn;
667 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
668 if ( dbusConn.isConnected() ) {
669 if (ps == TDESystemPowerState::Suspend) {
670 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
671 "org.freedesktop.DeviceKit.Power",
672 "/org/freedesktop/DeviceKit/Power",
673 "org.freedesktop.DeviceKit.Power",
675 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
676 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
680 else if (ps == TDESystemPowerState::Hibernate) {
681 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
682 "org.freedesktop.DeviceKit.Power",
683 "/org/freedesktop/DeviceKit/Power",
684 "org.freedesktop.DeviceKit.Power",
686 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
687 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
697 TQT_DBusConnection dbusConn;
698 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
699 if ( dbusConn.isConnected() ) {
700 if (ps == TDESystemPowerState::Suspend) {
701 TQT_DBusProxy halPowerManagement(
702 "org.freedesktop.Hal",
703 "/org/freedesktop/Hal/devices/computer",
704 "org.freedesktop.Hal.Device.SystemPowerManagement",
706 TQValueList<TQT_DBusData> params;
707 params << TQT_DBusData::fromInt32(0);
708 TQT_DBusMessage reply = halPowerManagement.sendWithReply(
"Suspend", params);
709 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
713 else if (ps == TDESystemPowerState::Hibernate) {
714 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
715 "org.freedesktop.Hal",
716 "/org/freedesktop/Hal/devices/computer",
717 "org.freedesktop.Hal.Device.SystemPowerManagement",
719 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
720 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
728 #ifdef WITH_TDEHWLIB_DAEMONS
730 TQT_DBusConnection dbusConn;
731 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
732 if ( dbusConn.isConnected() ) {
733 if (ps == TDESystemPowerState::Standby) {
734 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
735 "org.trinitydesktop.hardwarecontrol",
736 "/org/trinitydesktop/hardwarecontrol",
737 "org.trinitydesktop.hardwarecontrol.Power",
739 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
740 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
744 else if (ps == TDESystemPowerState::Freeze) {
745 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
746 "org.trinitydesktop.hardwarecontrol",
747 "/org/trinitydesktop/hardwarecontrol",
748 "org.trinitydesktop.hardwarecontrol.Power",
750 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
751 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
755 else if (ps == TDESystemPowerState::Suspend) {
756 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
757 "org.trinitydesktop.hardwarecontrol",
758 "/org/trinitydesktop/hardwarecontrol",
759 "org.trinitydesktop.hardwarecontrol.Power",
761 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
762 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
766 else if (ps == TDESystemPowerState::Hibernate) {
767 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
768 "org.trinitydesktop.hardwarecontrol",
769 "/org/trinitydesktop/hardwarecontrol",
770 "org.trinitydesktop.hardwarecontrol.Power",
772 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
773 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
783 else if (ps == TDESystemPowerState::PowerOff) {
785 config.setGroup(
"General" );
786 if (!config.readBoolEntry(
"offerShutdown",
true )) {
789 #ifdef WITH_LOGINDPOWER
791 TQT_DBusConnection dbusConn;
792 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
793 if ( dbusConn.isConnected() ) {
794 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
795 "org.freedesktop.login1.Manager", dbusConn);
796 TQValueList<TQT_DBusData> params;
797 params << TQT_DBusData::fromBool(
true);
798 if (logindProxy.canSend()) {
799 TQT_DBusMessage reply = logindProxy.sendWithReply(
"PowerOff", params);
800 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
807 #ifdef WITH_CONSOLEKIT
809 TQT_DBusConnection dbusConn;
810 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
811 if ( dbusConn.isConnected() ) {
812 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
813 "org.freedesktop.ConsoleKit",
814 "/org/freedesktop/ConsoleKit/Manager",
815 "org.freedesktop.ConsoleKit.Manager",
817 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
818 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
827 TQDataStream arg(data, IO_WriteOnly);
828 arg << (int)0 << (
int)2 << (int)2;
829 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
834 else if (ps == TDESystemPowerState::Reboot) {
836 config.setGroup(
"General" );
837 if (!config.readBoolEntry(
"offerShutdown",
true )) {
840 #ifdef WITH_LOGINDPOWER
842 TQT_DBusConnection dbusConn;
843 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
844 if ( dbusConn.isConnected() ) {
845 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
846 "org.freedesktop.login1.Manager", dbusConn);
847 TQValueList<TQT_DBusData> params;
848 params << TQT_DBusData::fromBool(
true);
849 if (logindProxy.canSend()) {
850 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Reboot", params);
851 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
858 #ifdef WITH_CONSOLEKIT
860 TQT_DBusConnection dbusConn;
861 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
862 if ( dbusConn.isConnected() ) {
863 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
864 "org.freedesktop.ConsoleKit",
865 "/org/freedesktop/ConsoleKit/Manager",
866 "org.freedesktop.ConsoleKit.Manager",
868 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
869 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
878 TQDataStream arg(data, IO_WriteOnly);
879 arg << (int)0 << (
int)1 << (int)2;
880 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
885 else if (ps == TDESystemPowerState::Active) {
893 #include "tderootsystemdevice.moc"
Access KDE Configuration entries.