summaryrefslogtreecommitdiffstats
path: root/kicker/kicker/ui/k_new_mnu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kicker/kicker/ui/k_new_mnu.cpp')
-rw-r--r--kicker/kicker/ui/k_new_mnu.cpp98
1 files changed, 48 insertions, 50 deletions
diff --git a/kicker/kicker/ui/k_new_mnu.cpp b/kicker/kicker/ui/k_new_mnu.cpp
index de97b592b..7541d5d94 100644
--- a/kicker/kicker/ui/k_new_mnu.cpp
+++ b/kicker/kicker/ui/k_new_mnu.cpp
@@ -146,8 +146,8 @@ enum SuspendType {
Freeze,
Standby,
Suspend,
- Hibernate,
- HybridSuspend
+ HybridSuspend,
+ Hibernate
};
};
@@ -2745,12 +2745,12 @@ void KMenu::slotStartURL(const TQString& u)
else if ( u == "kicker:/suspend_ram" ) {
slotSuspend( SuspendType::Suspend );
}
- else if ( u == "kicker:/suspend_disk" ) {
- slotSuspend( SuspendType::Hibernate );
- }
else if ( u == "kicker:/hybrid_suspend" ) {
slotSuspend( SuspendType::HybridSuspend );
}
+ else if ( u == "kicker:/suspend_disk" ) {
+ slotSuspend( SuspendType::Hibernate );
+ }
else if ( u == "kicker:/savesession" ) {
TQByteArray data;
kapp->dcopClient()->send( "ksmserver", "default",
@@ -3810,50 +3810,54 @@ int KMenu::max_items(int category) const
void KMenu::insertSuspendOption( int &nId, int &index )
{
- bool suspend_ram = false;
- bool suspend_freeze = false;
- bool standby = false;
- bool suspend_disk = false;
- bool hybrid_suspend = false;
+ bool canFreeze = false;
+ bool canStandby = false;
+ bool canSuspend = false;
+ bool canHybridSuspend = false;
+ bool canHibernate = false;
+
#if defined(COMPILE_HALBACKEND)
- suspend_ram = libhal_device_get_property_bool(m_halCtx,
+ canStandby = libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend",
+ "power_management.can_standby",
NULL);
- standby = libhal_device_get_property_bool(m_halCtx,
+ canSuspend = libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
- "power_management.can_standby",
+ "power_management.can_suspend",
NULL);
- suspend_disk = libhal_device_get_property_bool(m_halCtx,
+ canHybridSuspend = libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
- "power_management.can_hibernate",
+ "power_management.can_suspend_hybrid",
NULL);
- hybrid_suspend = libhal_device_get_property_bool(m_halCtx,
+ canHibernate = libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend_hybrid",
+ "power_management.can_hibernate",
NULL);
#elif defined(__TDE_HAVE_TDEHWLIB) // COMPILE_HALBACKEND
TDERootSystemDevice* rootDevice = TDEGlobal::hardwareDevices()->rootSystemDevice();
if (rootDevice) {
- suspend_ram = rootDevice->canSuspend();
- suspend_freeze = rootDevice->canFreeze();
- standby = rootDevice->canStandby();
- suspend_disk = rootDevice->canHibernate();
- hybrid_suspend = rootDevice->canHybridSuspend();
+ canFreeze = rootDevice->canFreeze();
+ canStandby = rootDevice->canStandby();
+ canSuspend = rootDevice->canSuspend();
+ canHybridSuspend = rootDevice->canHybridSuspend();
+ canHibernate = rootDevice->canHibernate();
}
#endif
m_exitView->leftView()->insertSeparator( nId++, i18n("Suspend"), index++ );
- // respect disable suspend/hibernate settings from power-manager
+ // respect disable settings from power-manager
TDEConfig config("power-managerrc");
+ bool disableFreeze = config.readBoolEntry("disableFreeze", false);
+ bool disableStandby = config.readBoolEntry("disableStandby", false);
bool disableSuspend = config.readBoolEntry("disableSuspend", false);
+ bool disableHybridSuspend = config.readBoolEntry("disableHybridSuspend", false);
bool disableHibernate = config.readBoolEntry("disableHibernate", false);
- if ( suspend_freeze && !disableSuspend ) {
+ if ( canFreeze && !disableFreeze ) {
m_exitView->leftView()->insertItem(
"suspend2ram",
i18n( "Freeze" ),
@@ -3861,7 +3865,7 @@ void KMenu::insertSuspendOption( int &nId, int &index )
"kicker:/suspend_freeze", nId++, index++ );
}
- if ( standby && !disableSuspend ) {
+ if ( canStandby && !disableStandby ) {
m_exitView->leftView()->insertItem(
"media-playback-pause",
i18n( "Standby" ),
@@ -3869,7 +3873,7 @@ void KMenu::insertSuspendOption( int &nId, int &index )
"kicker:/standby", nId++, index++ );
}
- if ( suspend_ram && !disableSuspend ) {
+ if ( canSuspend && !disableSuspend ) {
m_exitView->leftView()->insertItem(
"suspend2ram",
i18n( "Suspend" ),
@@ -3877,7 +3881,14 @@ void KMenu::insertSuspendOption( int &nId, int &index )
"kicker:/suspend_ram", nId++, index++ );
}
- if ( suspend_disk && !disableHibernate ) {
+ if ( canHybridSuspend && !disableHybridSuspend ) {
+ m_exitView->leftView()->insertItem(
+ "suspend2disk",
+ i18n( "Hybrid Suspend" ),
+ i18n( "Suspend to RAM + Disk" ),
+ "kicker:/hybrid_suspend", nId++, index++ );
+ }
+ if ( canHibernate && !disableHibernate ) {
m_exitView->leftView()->insertItem(
"suspend2disk",
i18n( "Hibernate" ),
@@ -3885,13 +3896,6 @@ void KMenu::insertSuspendOption( int &nId, int &index )
"kicker:/suspend_disk", nId++, index++ );
}
- if ( hybrid_suspend && !disableSuspend && !disableHibernate ) {
- m_exitView->leftView()->insertItem(
- "suspend2disk",
- i18n( "Hybrid Suspend" ),
- i18n( "Suspend to RAM + Disk" ),
- "kicker:/hybrid_suspend", nId++, index++ );
- }
}
void KMenu::slotSuspend(int id)
@@ -3911,19 +3915,21 @@ void KMenu::slotSuspend(int id)
DBusMessage* msg = NULL;
if (m_dbusConn) {
- // No Freeze support in HAL
- if (id == SuspendType::Standby) {
+ // No Freeze nor Standby support in HAL
+ if (id == SuspendType::Suspend) {
msg = dbus_message_new_method_call(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device.SystemPowerManagement",
- "Standby");
- } else if (id == SuspendType::Suspend) {
+ "Suspend");
+ int wakeup=0;
+ dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
+ } else if (id == SuspendType::HybridSuspend) {
msg = dbus_message_new_method_call(
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device.SystemPowerManagement",
- "Suspend");
+ "SuspendHybrid");
int wakeup=0;
dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
} else if (id == SuspendType::Hibernate) {
@@ -3932,14 +3938,6 @@ void KMenu::slotSuspend(int id)
"/org/freedesktop/Hal/devices/computer",
"org.freedesktop.Hal.Device.SystemPowerManagement",
"Hibernate");
- } else if (id == SuspendType::HybridSuspend) {
- msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "SuspendHybrid");
- int wakeup=0;
- dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
} else {
return;
}
@@ -3958,10 +3956,10 @@ void KMenu::slotSuspend(int id)
error = !rootDevice->setPowerState(TDESystemPowerState::Standby);
} else if (id == SuspendType::Suspend) {
error = !rootDevice->setPowerState(TDESystemPowerState::Suspend);
- } else if (id == SuspendType::Hibernate) {
- error = !rootDevice->setPowerState(TDESystemPowerState::Hibernate);
} else if (id == SuspendType::HybridSuspend) {
error = !rootDevice->setPowerState(TDESystemPowerState::HybridSuspend);
+ } else if (id == SuspendType::Hibernate) {
+ error = !rootDevice->setPowerState(TDESystemPowerState::Hibernate);
} else {
return;
}