20#include "tderootsystemdevice.h"
21#include "tdestoragedevice.h"
27#include <dcopclient.h>
30#include "tdeapplication.h"
31#include "kstandarddirs.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 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();
189bool 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();
255#ifdef WITH_TDEHWLIB_DAEMONS
257 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
258 if (dbusConn.isConnected()) {
260 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
261 "org.trinitydesktop.hardwarecontrol",
262 "/org/trinitydesktop/hardwarecontrol",
263 "org.trinitydesktop.hardwarecontrol.Power",
265 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
266 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
267 return reply[0].toBool();
276bool TDERootSystemDevice::canHibernate() {
277 TQString statenode =
"/sys/power/state";
278 TQString disknode =
"/sys/power/disk";
279 int state_rval = access (statenode.ascii(), W_OK);
280 int disk_rval = access (disknode.ascii(), W_OK);
281 if (state_rval == 0 && disk_rval == 0) {
282 if (powerStates().contains(TDESystemPowerState::Hibernate)) {
290#ifdef WITH_LOGINDPOWER
292 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
293 if (dbusConn.isConnected()) {
295 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
296 "org.freedesktop.login1",
297 "/org/freedesktop/login1",
298 "org.freedesktop.login1.Manager",
300 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
301 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
302 return (reply[0].toString() ==
"yes");
310 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
311 if (dbusConn.isConnected()) {
312 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
313 if (upowerProperties.canSend()) {
315 TQValueList<TQT_DBusData> params;
316 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
317 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
318 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
319 return reply[0].toVariant().value.toBool();
326#ifdef WITH_DEVKITPOWER
328 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
329 if (dbusConn.isConnected()) {
330 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
331 if (devkitpowerProperties.canSend()) {
333 TQValueList<TQT_DBusData> params;
334 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
335 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
336 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
337 return reply[0].toVariant().value.toBool();
344#ifdef WITH_TDEHWLIB_DAEMONS
346 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
347 if (dbusConn.isConnected()) {
349 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
350 "org.trinitydesktop.hardwarecontrol",
351 "/org/trinitydesktop/hardwarecontrol",
352 "org.trinitydesktop.hardwarecontrol.Power",
354 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
355 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
356 return reply[0].toBool();
365bool TDERootSystemDevice::canHybridSuspend() {
366 TQString statenode =
"/sys/power/state";
367 TQString disknode =
"/sys/power/disk";
368 int state_rval = access (statenode.ascii(), W_OK);
369 int disk_rval = access (disknode.ascii(), W_OK);
370 if (state_rval == 0 && disk_rval == 0) {
371 if (powerStates().contains(TDESystemPowerState::HybridSuspend)) {
379#ifdef WITH_LOGINDPOWER
381 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
382 if (dbusConn.isConnected()) {
384 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
385 "org.freedesktop.login1",
386 "/org/freedesktop/login1",
387 "org.freedesktop.login1.Manager",
389 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
390 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
391 return (reply[0].toString() ==
"yes");
400#ifdef WITH_TDEHWLIB_DAEMONS
402 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
403 if (dbusConn.isConnected()) {
405 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
406 "org.trinitydesktop.hardwarecontrol",
407 "/org/trinitydesktop/hardwarecontrol",
408 "org.trinitydesktop.hardwarecontrol.Power",
410 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
411 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
412 return reply[0].toBool();
421bool TDERootSystemDevice::canPowerOff() {
423 config.setGroup(
"General" );
424 if (!config.readBoolEntry(
"offerShutdown",
true )) {
428#ifdef WITH_LOGINDPOWER
430 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
431 if (dbusConn.isConnected()) {
433 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
434 "org.freedesktop.login1",
435 "/org/freedesktop/login1",
436 "org.freedesktop.login1.Manager",
438 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
439 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
440 return (reply[0].toString() ==
"yes");
446#ifdef WITH_CONSOLEKIT
448 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
449 if (dbusConn.isConnected()) {
451 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
452 "org.freedesktop.ConsoleKit",
453 "/org/freedesktop/ConsoleKit/Manager",
454 "org.freedesktop.ConsoleKit.Manager",
456 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
457 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
458 return reply[0].toBool();
473bool TDERootSystemDevice::canReboot() {
475 config.setGroup(
"General" );
476 if (!config.readBoolEntry(
"offerShutdown",
true )) {
480#ifdef WITH_LOGINDPOWER
482 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
483 if (dbusConn.isConnected()) {
485 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
486 "org.freedesktop.login1",
487 "/org/freedesktop/login1",
488 "org.freedesktop.login1.Manager",
490 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
491 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
492 return (reply[0].toString() ==
"yes");
498#ifdef WITH_CONSOLEKIT
500 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
501 if (dbusConn.isConnected()) {
503 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
504 "org.freedesktop.ConsoleKit",
505 "/org/freedesktop/ConsoleKit/Manager",
506 "org.freedesktop.ConsoleKit.Manager",
508 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
509 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
510 return reply[0].toBool();
525void TDERootSystemDevice::setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
526 TQString hibernationnode =
"/sys/power/disk";
527 TQFile file( hibernationnode );
528 if ( file.open( IO_WriteOnly ) ) {
529 TQString hibernationCommand;
530 if (hm == TDESystemHibernationMethod::Platform) {
531 hibernationCommand =
"platform";
533 else if (hm == TDESystemHibernationMethod::Shutdown) {
534 hibernationCommand =
"shutdown";
536 else if (hm == TDESystemHibernationMethod::Reboot) {
537 hibernationCommand =
"reboot";
539 else if (hm == TDESystemHibernationMethod::TestProc) {
540 hibernationCommand =
"testproc";
542 else if (hm == TDESystemHibernationMethod::Test) {
543 hibernationCommand =
"test";
545 else if (hm == TDESystemHibernationMethod::Suspend) {
546 hibernationCommand =
"suspend";
548 TQTextStream stream( &file );
549 stream << hibernationCommand;
554#ifdef WITH_TDEHWLIB_DAEMONS
556 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
557 if (dbusConn.isConnected()) {
558 TQT_DBusProxy hardwareControl(
"org.trinitydesktop.hardwarecontrol",
"/org/trinitydesktop/hardwarecontrol",
"org.trinitydesktop.hardwarecontrol.Power", dbusConn);
559 if (hardwareControl.canSend()) {
561 TQValueList<TQT_DBusData> params;
562 TQString hibernationCommand;
563 if (hm == TDESystemHibernationMethod::Platform) {
564 hibernationCommand =
"platform";
566 else if (hm == TDESystemHibernationMethod::Shutdown) {
567 hibernationCommand =
"shutdown";
569 else if (hm == TDESystemHibernationMethod::Reboot) {
570 hibernationCommand =
"reboot";
572 else if (hm == TDESystemHibernationMethod::TestProc) {
573 hibernationCommand =
"testproc";
575 else if (hm == TDESystemHibernationMethod::Test) {
576 hibernationCommand =
"test";
578 else if (hm == TDESystemHibernationMethod::Suspend) {
579 hibernationCommand =
"suspend";
581 params << TQT_DBusData::fromString(hibernationCommand);
582 TQT_DBusMessage reply = hardwareControl.sendWithReply(
"SetHibernationMethod", params);
583 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
593bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState ps) {
594 if ((ps == TDESystemPowerState::Freeze) || (ps == TDESystemPowerState::Standby) ||
595 (ps == TDESystemPowerState::Suspend) || (ps == TDESystemPowerState::Hibernate) ||
596 (ps == TDESystemPowerState::HybridSuspend)) {
597 TQString statenode =
"/sys/power/state";
598 TQString disknode =
"/sys/power/disk";
599 TQFile statefile( statenode );
600 TQFile diskfile( disknode );
601 if ( statefile.open( IO_WriteOnly ) &&
602 ((ps != TDESystemPowerState::Hibernate && ps != TDESystemPowerState::HybridSuspend) ||
603 diskfile.open( IO_WriteOnly )) ) {
604 TQString powerCommand;
605 if (ps == TDESystemPowerState::Freeze) {
606 powerCommand =
"freeze";
608 else if (ps == TDESystemPowerState::Standby) {
609 powerCommand =
"standby";
611 else if (ps == TDESystemPowerState::Suspend) {
612 powerCommand =
"mem";
614 else if (ps == TDESystemPowerState::Hibernate) {
615 powerCommand =
"disk";
616 TQTextStream diskstream( &diskfile );
617 diskstream <<
"platform";
620 else if (ps == TDESystemPowerState::HybridSuspend) {
621 powerCommand =
"disk";
622 TQTextStream diskstream( &diskfile );
623 diskstream <<
"suspend";
626 TQTextStream statestream( &statefile );
627 statestream << powerCommand;
632#ifdef WITH_LOGINDPOWER
635 TQT_DBusConnection dbusConn;
636 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
637 if ( dbusConn.isConnected() ) {
638 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
639 "org.freedesktop.login1.Manager", dbusConn);
640 TQValueList<TQT_DBusData> params;
641 params << TQT_DBusData::fromBool(
true);
642 if (logindProxy.canSend()) {
643 if (ps == TDESystemPowerState::Suspend) {
644 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Suspend", params);
645 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
649 else if (ps == TDESystemPowerState::Hibernate) {
650 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Hibernate", params);
651 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
655 else if (ps == TDESystemPowerState::HybridSuspend) {
656 TQT_DBusMessage reply = logindProxy.sendWithReply(
"HybridSleep", params);
657 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
669 TQT_DBusConnection dbusConn;
670 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
671 if ( dbusConn.isConnected() ) {
672 if (ps == TDESystemPowerState::Suspend) {
673 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
674 "org.freedesktop.UPower",
675 "/org/freedesktop/UPower",
676 "org.freedesktop.UPower",
678 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
679 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
683 else if (ps == TDESystemPowerState::Hibernate) {
684 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
685 "org.freedesktop.UPower",
686 "/org/freedesktop/UPower",
687 "org.freedesktop.UPower",
689 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
690 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
698#ifdef WITH_DEVKITPOWER
701 TQT_DBusConnection dbusConn;
702 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
703 if ( dbusConn.isConnected() ) {
704 if (ps == TDESystemPowerState::Suspend) {
705 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
706 "org.freedesktop.DeviceKit.Power",
707 "/org/freedesktop/DeviceKit/Power",
708 "org.freedesktop.DeviceKit.Power",
710 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
711 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
715 else if (ps == TDESystemPowerState::Hibernate) {
716 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
717 "org.freedesktop.DeviceKit.Power",
718 "/org/freedesktop/DeviceKit/Power",
719 "org.freedesktop.DeviceKit.Power",
721 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
722 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
730#ifdef WITH_TDEHWLIB_DAEMONS
732 TQT_DBusConnection dbusConn;
733 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
734 if ( dbusConn.isConnected() ) {
735 if (ps == TDESystemPowerState::Standby) {
736 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
737 "org.trinitydesktop.hardwarecontrol",
738 "/org/trinitydesktop/hardwarecontrol",
739 "org.trinitydesktop.hardwarecontrol.Power",
741 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
742 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
746 else if (ps == TDESystemPowerState::Freeze) {
747 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
748 "org.trinitydesktop.hardwarecontrol",
749 "/org/trinitydesktop/hardwarecontrol",
750 "org.trinitydesktop.hardwarecontrol.Power",
752 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
753 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
757 else if (ps == TDESystemPowerState::Suspend) {
758 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
759 "org.trinitydesktop.hardwarecontrol",
760 "/org/trinitydesktop/hardwarecontrol",
761 "org.trinitydesktop.hardwarecontrol.Power",
763 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
764 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
768 else if (ps == TDESystemPowerState::Hibernate) {
769 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
770 "org.trinitydesktop.hardwarecontrol",
771 "/org/trinitydesktop/hardwarecontrol",
772 "org.trinitydesktop.hardwarecontrol.Power",
774 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
775 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
779 else if (ps == TDESystemPowerState::HybridSuspend) {
780 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
781 "org.trinitydesktop.hardwarecontrol",
782 "/org/trinitydesktop/hardwarecontrol",
783 "org.trinitydesktop.hardwarecontrol.Power",
785 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
786 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
796 else if (ps == TDESystemPowerState::PowerOff) {
798 config.setGroup(
"General" );
799 if (!config.readBoolEntry(
"offerShutdown",
true )) {
802#ifdef WITH_LOGINDPOWER
804 TQT_DBusConnection dbusConn;
805 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
806 if ( dbusConn.isConnected() ) {
807 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
808 "org.freedesktop.login1.Manager", dbusConn);
809 TQValueList<TQT_DBusData> params;
810 params << TQT_DBusData::fromBool(
true);
811 if (logindProxy.canSend()) {
812 TQT_DBusMessage reply = logindProxy.sendWithReply(
"PowerOff", params);
813 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
820#ifdef WITH_CONSOLEKIT
822 TQT_DBusConnection dbusConn;
823 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
824 if ( dbusConn.isConnected() ) {
825 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
826 "org.freedesktop.ConsoleKit",
827 "/org/freedesktop/ConsoleKit/Manager",
828 "org.freedesktop.ConsoleKit.Manager",
830 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
831 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
857 TQDataStream arg(data, IO_WriteOnly);
858 arg << (int)0 << (
int)2 << (int)2;
859 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
864 else if (ps == TDESystemPowerState::Reboot) {
866 config.setGroup(
"General" );
867 if (!config.readBoolEntry(
"offerShutdown",
true )) {
870#ifdef WITH_LOGINDPOWER
872 TQT_DBusConnection dbusConn;
873 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
874 if ( dbusConn.isConnected() ) {
875 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
876 "org.freedesktop.login1.Manager", dbusConn);
877 TQValueList<TQT_DBusData> params;
878 params << TQT_DBusData::fromBool(
true);
879 if (logindProxy.canSend()) {
880 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Reboot", params);
881 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
888#ifdef WITH_CONSOLEKIT
890 TQT_DBusConnection dbusConn;
891 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
892 if ( dbusConn.isConnected() ) {
893 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
894 "org.freedesktop.ConsoleKit",
895 "/org/freedesktop/ConsoleKit/Manager",
896 "org.freedesktop.ConsoleKit.Manager",
898 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
899 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
908 TQDataStream arg(data, IO_WriteOnly);
909 arg << (int)0 << (
int)1 << (int)2;
910 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
915 else if (ps == TDESystemPowerState::Active) {
923#include "tderootsystemdevice.moc"
Access KDE Configuration entries.