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 TQString disknode =
"/sys/power/disk";
300 int state_rval = access (statenode.ascii(), W_OK);
301 int disk_rval = access (disknode.ascii(), W_OK);
302 if (state_rval == 0 && disk_rval == 0) {
303 if (powerStates().contains(TDESystemPowerState::Hibernate)) {
311 #ifdef WITH_LOGINDPOWER 313 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
314 if (dbusConn.isConnected()) {
316 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
317 "org.freedesktop.login1",
318 "/org/freedesktop/login1",
319 "org.freedesktop.login1.Manager",
321 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
322 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
323 return (reply[0].toString() ==
"yes");
327 #endif // WITH_LOGINDPOWER 331 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
332 if (dbusConn.isConnected()) {
333 TQT_DBusProxy upowerProperties(
"org.freedesktop.UPower",
"/org/freedesktop/UPower",
"org.freedesktop.DBus.Properties", dbusConn);
334 if (upowerProperties.canSend()) {
336 TQValueList<TQT_DBusData> params;
337 params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
338 TQT_DBusMessage reply = upowerProperties.sendWithReply(
"Get", params);
339 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
340 return reply[0].toVariant().value.toBool();
347 #ifdef WITH_DEVKITPOWER 349 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
350 if (dbusConn.isConnected()) {
351 TQT_DBusProxy devkitpowerProperties(
"org.freedesktop.DeviceKit.Power",
"/org/freedesktop/DeviceKit/Power",
"org.freedesktop.DBus.Properties", dbusConn);
352 if (devkitpowerProperties.canSend()) {
354 TQValueList<TQT_DBusData> params;
355 params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString(
"CanHibernate");
356 TQT_DBusMessage reply = devkitpowerProperties.sendWithReply(
"Get", params);
357 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
358 return reply[0].toVariant().value.toBool();
363 #endif// WITH_DEVKITPOWER 367 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
368 if (dbusConn.isConnected()) {
369 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
370 if (halProperties.canSend()) {
372 TQValueList<TQT_DBusData> params;
373 TQT_DBusMessage reply;
375 params << TQT_DBusData::fromString(
"power_management.can_hibernate");
376 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
377 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
378 return reply[0].toBool();
381 params << TQT_DBusData::fromString(
"power_management.can_suspend_to_disk");
382 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
383 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
384 return reply[0].toBool();
391 #ifdef WITH_TDEHWLIB_DAEMONS 393 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
394 if (dbusConn.isConnected()) {
396 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
397 "org.trinitydesktop.hardwarecontrol",
398 "/org/trinitydesktop/hardwarecontrol",
399 "org.trinitydesktop.hardwarecontrol.Power",
401 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
402 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
403 return reply[0].toBool();
407 #endif // WITH_TDEHWLIB_DAEMONS 412 bool TDERootSystemDevice::canHybridSuspend() {
413 TQString statenode =
"/sys/power/state";
414 TQString disknode =
"/sys/power/disk";
415 int state_rval = access (statenode.ascii(), W_OK);
416 int disk_rval = access (disknode.ascii(), W_OK);
417 if (state_rval == 0 && disk_rval == 0) {
418 if (powerStates().contains(TDESystemPowerState::HybridSuspend)) {
426 #ifdef WITH_LOGINDPOWER 428 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
429 if (dbusConn.isConnected()) {
431 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
432 "org.freedesktop.login1",
433 "/org/freedesktop/login1",
434 "org.freedesktop.login1.Manager",
436 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
437 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
438 return (reply[0].toString() ==
"yes");
442 #endif // WITH_LOGINDPOWER 449 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
450 if (dbusConn.isConnected()) {
451 TQT_DBusProxy halProperties(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device", dbusConn);
452 if (halProperties.canSend()) {
454 TQValueList<TQT_DBusData> params;
455 TQT_DBusMessage reply;
457 params << TQT_DBusData::fromString(
"power_management.can_suspend_hybrid");
458 reply = halProperties.sendWithReply(
"GetPropertyBoolean", params);
459 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
460 return reply[0].toBool();
467 #ifdef WITH_TDEHWLIB_DAEMONS 469 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
470 if (dbusConn.isConnected()) {
472 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
473 "org.trinitydesktop.hardwarecontrol",
474 "/org/trinitydesktop/hardwarecontrol",
475 "org.trinitydesktop.hardwarecontrol.Power",
477 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
478 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
479 return reply[0].toBool();
483 #endif // WITH_TDEHWLIB_DAEMONS 488 bool TDERootSystemDevice::canPowerOff() {
490 config.setGroup(
"General" );
491 if (!config.readBoolEntry(
"offerShutdown",
true )) {
495 #ifdef WITH_LOGINDPOWER 497 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
498 if (dbusConn.isConnected()) {
500 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
501 "org.freedesktop.login1",
502 "/org/freedesktop/login1",
503 "org.freedesktop.login1.Manager",
505 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
506 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
507 return (reply[0].toString() ==
"yes");
511 #endif // WITH_LOGINDPOWER 513 #ifdef WITH_CONSOLEKIT 515 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
516 if (dbusConn.isConnected()) {
518 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
519 "org.freedesktop.ConsoleKit",
520 "/org/freedesktop/ConsoleKit/Manager",
521 "org.freedesktop.ConsoleKit.Manager",
523 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
524 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
525 return reply[0].toBool();
529 #endif // WITH_CONSOLEKIT 540 bool TDERootSystemDevice::canReboot() {
542 config.setGroup(
"General" );
543 if (!config.readBoolEntry(
"offerShutdown",
true )) {
547 #ifdef WITH_LOGINDPOWER 549 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
550 if (dbusConn.isConnected()) {
552 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
553 "org.freedesktop.login1",
554 "/org/freedesktop/login1",
555 "org.freedesktop.login1.Manager",
557 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
558 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
559 return (reply[0].toString() ==
"yes");
563 #endif // WITH_LOGINDPOWER 565 #ifdef WITH_CONSOLEKIT 567 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
568 if (dbusConn.isConnected()) {
570 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
571 "org.freedesktop.ConsoleKit",
572 "/org/freedesktop/ConsoleKit/Manager",
573 "org.freedesktop.ConsoleKit.Manager",
575 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
576 if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
577 return reply[0].toBool();
581 #endif // WITH_CONSOLEKIT 592 void TDERootSystemDevice::setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) {
593 TQString hibernationnode =
"/sys/power/disk";
594 TQFile file( hibernationnode );
595 if ( file.open( IO_WriteOnly ) ) {
596 TQString hibernationCommand;
597 if (hm == TDESystemHibernationMethod::Platform) {
598 hibernationCommand =
"platform";
600 else if (hm == TDESystemHibernationMethod::Shutdown) {
601 hibernationCommand =
"shutdown";
603 else if (hm == TDESystemHibernationMethod::Reboot) {
604 hibernationCommand =
"reboot";
606 else if (hm == TDESystemHibernationMethod::TestProc) {
607 hibernationCommand =
"testproc";
609 else if (hm == TDESystemHibernationMethod::Test) {
610 hibernationCommand =
"test";
612 else if (hm == TDESystemHibernationMethod::Suspend) {
613 hibernationCommand =
"suspend";
615 TQTextStream stream( &file );
616 stream << hibernationCommand;
621 #ifdef WITH_TDEHWLIB_DAEMONS 623 TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
624 if (dbusConn.isConnected()) {
625 TQT_DBusProxy hardwareControl(
"org.trinitydesktop.hardwarecontrol",
"/org/trinitydesktop/hardwarecontrol",
"org.trinitydesktop.hardwarecontrol.Power", dbusConn);
626 if (hardwareControl.canSend()) {
628 TQValueList<TQT_DBusData> params;
629 TQString hibernationCommand;
630 if (hm == TDESystemHibernationMethod::Platform) {
631 hibernationCommand =
"platform";
633 else if (hm == TDESystemHibernationMethod::Shutdown) {
634 hibernationCommand =
"shutdown";
636 else if (hm == TDESystemHibernationMethod::Reboot) {
637 hibernationCommand =
"reboot";
639 else if (hm == TDESystemHibernationMethod::TestProc) {
640 hibernationCommand =
"testproc";
642 else if (hm == TDESystemHibernationMethod::Test) {
643 hibernationCommand =
"test";
645 else if (hm == TDESystemHibernationMethod::Suspend) {
646 hibernationCommand =
"suspend";
648 params << TQT_DBusData::fromString(hibernationCommand);
649 TQT_DBusMessage reply = hardwareControl.sendWithReply(
"SetHibernationMethod", params);
650 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
656 #endif // WITH_TDEHWLIB_DAEMONS 660 bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState ps) {
661 if ((ps == TDESystemPowerState::Freeze) || (ps == TDESystemPowerState::Standby) ||
662 (ps == TDESystemPowerState::Suspend) || (ps == TDESystemPowerState::Hibernate) ||
663 (ps == TDESystemPowerState::HybridSuspend)) {
664 TQString statenode =
"/sys/power/state";
665 TQString disknode =
"/sys/power/disk";
666 TQFile statefile( statenode );
667 TQFile diskfile( disknode );
668 if ( statefile.open( IO_WriteOnly ) &&
669 ((ps != TDESystemPowerState::Hibernate && ps != TDESystemPowerState::HybridSuspend) ||
670 diskfile.open( IO_WriteOnly )) ) {
671 TQString powerCommand;
672 if (ps == TDESystemPowerState::Freeze) {
673 powerCommand =
"freeze";
675 else if (ps == TDESystemPowerState::Standby) {
676 powerCommand =
"standby";
678 else if (ps == TDESystemPowerState::Suspend) {
679 powerCommand =
"mem";
681 else if (ps == TDESystemPowerState::Hibernate) {
682 powerCommand =
"disk";
683 TQTextStream diskstream( &diskfile );
684 diskstream <<
"platform";
687 else if (ps == TDESystemPowerState::HybridSuspend) {
688 powerCommand =
"disk";
689 TQTextStream diskstream( &diskfile );
690 diskstream <<
"suspend";
693 TQTextStream statestream( &statefile );
694 statestream << powerCommand;
699 #ifdef WITH_LOGINDPOWER 702 TQT_DBusConnection dbusConn;
703 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
704 if ( dbusConn.isConnected() ) {
705 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
706 "org.freedesktop.login1.Manager", dbusConn);
707 TQValueList<TQT_DBusData> params;
708 params << TQT_DBusData::fromBool(
true);
709 if (logindProxy.canSend()) {
710 if (ps == TDESystemPowerState::Suspend) {
711 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Suspend", params);
712 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
716 else if (ps == TDESystemPowerState::Hibernate) {
717 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Hibernate", params);
718 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
722 else if (ps == TDESystemPowerState::HybridSuspend) {
723 TQT_DBusMessage reply = logindProxy.sendWithReply(
"HybridSleep", params);
724 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
731 #endif // WITH_LOGINDPOWER 736 TQT_DBusConnection dbusConn;
737 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
738 if ( dbusConn.isConnected() ) {
739 if (ps == TDESystemPowerState::Suspend) {
740 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
741 "org.freedesktop.UPower",
742 "/org/freedesktop/UPower",
743 "org.freedesktop.UPower",
745 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
746 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
750 else if (ps == TDESystemPowerState::Hibernate) {
751 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
752 "org.freedesktop.UPower",
753 "/org/freedesktop/UPower",
754 "org.freedesktop.UPower",
756 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
757 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
763 #endif // WITH_UPOWER 765 #ifdef WITH_DEVKITPOWER 768 TQT_DBusConnection dbusConn;
769 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
770 if ( dbusConn.isConnected() ) {
771 if (ps == TDESystemPowerState::Suspend) {
772 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
773 "org.freedesktop.DeviceKit.Power",
774 "/org/freedesktop/DeviceKit/Power",
775 "org.freedesktop.DeviceKit.Power",
777 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
778 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
782 else if (ps == TDESystemPowerState::Hibernate) {
783 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
784 "org.freedesktop.DeviceKit.Power",
785 "/org/freedesktop/DeviceKit/Power",
786 "org.freedesktop.DeviceKit.Power",
788 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
789 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
795 #endif // WITH_DEVKITPOWER 800 TQT_DBusConnection dbusConn;
801 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
802 if ( dbusConn.isConnected() ) {
803 if (ps == TDESystemPowerState::Suspend) {
804 TQT_DBusProxy halPowerManagement(
805 "org.freedesktop.Hal",
806 "/org/freedesktop/Hal/devices/computer",
807 "org.freedesktop.Hal.Device.SystemPowerManagement",
809 TQValueList<TQT_DBusData> params;
810 params << TQT_DBusData::fromInt32(0);
811 TQT_DBusMessage reply = halPowerManagement.sendWithReply(
"Suspend", params);
812 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
816 else if (ps == TDESystemPowerState::Hibernate) {
817 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
818 "org.freedesktop.Hal",
819 "/org/freedesktop/Hal/devices/computer",
820 "org.freedesktop.Hal.Device.SystemPowerManagement",
822 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
823 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
827 else if (ps == TDESystemPowerState::HybridSuspend) {
828 TQT_DBusProxy halPowerManagement(
829 "org.freedesktop.Hal",
830 "/org/freedesktop/Hal/devices/computer",
831 "org.freedesktop.Hal.Device.SystemPowerManagement",
833 TQValueList<TQT_DBusData> params;
834 params << TQT_DBusData::fromInt32(0);
835 TQT_DBusMessage reply = halPowerManagement.sendWithReply(
"SuspendHybrid", params);
836 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
844 #ifdef WITH_TDEHWLIB_DAEMONS 846 TQT_DBusConnection dbusConn;
847 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
848 if ( dbusConn.isConnected() ) {
849 if (ps == TDESystemPowerState::Standby) {
850 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
851 "org.trinitydesktop.hardwarecontrol",
852 "/org/trinitydesktop/hardwarecontrol",
853 "org.trinitydesktop.hardwarecontrol.Power",
855 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
856 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
860 else if (ps == TDESystemPowerState::Freeze) {
861 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
862 "org.trinitydesktop.hardwarecontrol",
863 "/org/trinitydesktop/hardwarecontrol",
864 "org.trinitydesktop.hardwarecontrol.Power",
866 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
867 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
871 else if (ps == TDESystemPowerState::Suspend) {
872 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
873 "org.trinitydesktop.hardwarecontrol",
874 "/org/trinitydesktop/hardwarecontrol",
875 "org.trinitydesktop.hardwarecontrol.Power",
877 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
878 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
882 else if (ps == TDESystemPowerState::Hibernate) {
883 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
884 "org.trinitydesktop.hardwarecontrol",
885 "/org/trinitydesktop/hardwarecontrol",
886 "org.trinitydesktop.hardwarecontrol.Power",
888 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
889 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
893 else if (ps == TDESystemPowerState::HybridSuspend) {
894 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
895 "org.trinitydesktop.hardwarecontrol",
896 "/org/trinitydesktop/hardwarecontrol",
897 "org.trinitydesktop.hardwarecontrol.Power",
899 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
900 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
906 #endif // WITH_TDEHWLIB_DAEMONS 910 else if (ps == TDESystemPowerState::PowerOff) {
912 config.setGroup(
"General" );
913 if (!config.readBoolEntry(
"offerShutdown",
true )) {
916 #ifdef WITH_LOGINDPOWER 918 TQT_DBusConnection dbusConn;
919 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
920 if ( dbusConn.isConnected() ) {
921 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
922 "org.freedesktop.login1.Manager", dbusConn);
923 TQValueList<TQT_DBusData> params;
924 params << TQT_DBusData::fromBool(
true);
925 if (logindProxy.canSend()) {
926 TQT_DBusMessage reply = logindProxy.sendWithReply(
"PowerOff", params);
927 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
933 #endif // WITH_LOGINDPOWER 934 #ifdef WITH_CONSOLEKIT 936 TQT_DBusConnection dbusConn;
937 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
938 if ( dbusConn.isConnected() ) {
939 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
940 "org.freedesktop.ConsoleKit",
941 "/org/freedesktop/ConsoleKit/Manager",
942 "org.freedesktop.ConsoleKit.Manager",
944 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
945 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
950 #endif // WITH_CONSOLEKIT 971 TQDataStream arg(data, IO_WriteOnly);
972 arg << (int)0 << (
int)2 << (int)2;
973 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
978 else if (ps == TDESystemPowerState::Reboot) {
980 config.setGroup(
"General" );
981 if (!config.readBoolEntry(
"offerShutdown",
true )) {
984 #ifdef WITH_LOGINDPOWER 986 TQT_DBusConnection dbusConn;
987 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
988 if ( dbusConn.isConnected() ) {
989 TQT_DBusProxy logindProxy(
"org.freedesktop.login1",
"/org/freedesktop/login1",
990 "org.freedesktop.login1.Manager", dbusConn);
991 TQValueList<TQT_DBusData> params;
992 params << TQT_DBusData::fromBool(
true);
993 if (logindProxy.canSend()) {
994 TQT_DBusMessage reply = logindProxy.sendWithReply(
"Reboot", params);
995 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
1001 #endif // WITH_LOGINDPOWER 1002 #ifdef WITH_CONSOLEKIT 1004 TQT_DBusConnection dbusConn;
1005 dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
1006 if ( dbusConn.isConnected() ) {
1007 TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
1008 "org.freedesktop.ConsoleKit",
1009 "/org/freedesktop/ConsoleKit/Manager",
1010 "org.freedesktop.ConsoleKit.Manager",
1012 TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
1013 if (reply.type() == TQT_DBusMessage::ReplyMessage) {
1018 #endif // WITH_CONSOLEKIT 1022 TQDataStream arg(data, IO_WriteOnly);
1023 arg << (int)0 << (
int)1 << (int)2;
1024 if ( kapp->dcopClient()->send(
"ksmserver",
"default",
"logout(int,int,int)", data) ) {
1029 else if (ps == TDESystemPowerState::Active) {
1037 #include "tderootsystemdevice.moc" Access KDE Configuration entries.