|
|
|
@ -194,6 +194,8 @@ void tdepowersave::initMenu() {
|
|
|
|
|
TQIconSet::Automatic),
|
|
|
|
|
i18n("Suspend to RAM"), this,
|
|
|
|
|
TQT_SLOT(do_suspend2ram()));
|
|
|
|
|
FREEZE_MENU_ID = this->contextMenu()->insertItem( SmallIconSet("suspend_to_ram", TQIconSet::Automatic),
|
|
|
|
|
i18n("Freeze"), this, TQT_SLOT(do_freeze()));
|
|
|
|
|
STANDBY_MENU_ID = this->contextMenu()->insertItem( SmallIconSet("stand_by", TQIconSet::Automatic),
|
|
|
|
|
i18n("Standby"), this, TQT_SLOT(do_standby()));
|
|
|
|
|
|
|
|
|
@ -685,9 +687,9 @@ void tdepowersave::slotConfigProcessExited(TDEProcess *proc){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \b TQT_SLOT to send the command for "suspend to disk" to HAL daemon.
|
|
|
|
|
* \b TQT_SLOT to send the command for "suspend to disk" to TDE hardware library.
|
|
|
|
|
* If there is a error while "suspend to disk" the user get e messagebox.
|
|
|
|
|
* This function need a running HAL daemon for "suspend to disk".
|
|
|
|
|
* This function need a power management backend in TDE hardware library for "suspend to disk".
|
|
|
|
|
* \return boolean with the result of the operation
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if command not supported or if powersaved not running
|
|
|
|
@ -734,16 +736,16 @@ bool tdepowersave::do_suspend2disk(){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
kdWarning() << "This machine does not provide suspend2disk via HAL" << endl;
|
|
|
|
|
kdWarning() << "This machine does not provide suspend to disk state" << endl;
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \b TQT_SLOT to send the command for "suspend to RAM" to the HAL daemon.
|
|
|
|
|
* \b TQT_SLOT to send the command for "suspend to RAM" to the TDE hardware library.
|
|
|
|
|
* If there is a error while "suspend to RAM" the user get e messagebox.
|
|
|
|
|
* This function need a running HAL daemon for "suspend to RAM".
|
|
|
|
|
* This function need a power management backend in TDE hardware library for "suspend to RAM".
|
|
|
|
|
* \return boolean with the result of the operation
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if command not supported or if powersaved not running
|
|
|
|
@ -790,16 +792,71 @@ bool tdepowersave::do_suspend2ram(){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
kdWarning() << "This machine does not provide suspend2ram via HAL" << endl;
|
|
|
|
|
kdWarning() << "This machine does not provide suspend to ram state" << endl;
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \b TQT_SLOT to send the command for "stand-by" to the HAL daemon.
|
|
|
|
|
* \b TQT_SLOT to send the command for "freeze" to the TDE hardware library.
|
|
|
|
|
* If there is a error while "freeze" the user get e messagebox.
|
|
|
|
|
* This function need a power management backend in TDE hardware library for "freeze".
|
|
|
|
|
* \return boolean with the result of the operation
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if command not supported or if powersaved not running
|
|
|
|
|
*/
|
|
|
|
|
bool tdepowersave::do_freeze(){
|
|
|
|
|
kdDebugFuncIn(trace);
|
|
|
|
|
|
|
|
|
|
if (suspend.freeze) {
|
|
|
|
|
if (suspend.freeze_allowed || suspend.freeze_allowed == -1) {
|
|
|
|
|
calledSuspend = FREEZE;
|
|
|
|
|
if (!handleMounts(true)) {
|
|
|
|
|
kdWarning() << "Could not umount ..." << endl;
|
|
|
|
|
calledSuspend = -1;
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(settings->lockOnSuspend) {
|
|
|
|
|
display->lockScreen( settings->lockmethod );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
autoSuspend->stop();
|
|
|
|
|
autoDimm->stop();
|
|
|
|
|
notifySuspend(calledSuspend);
|
|
|
|
|
bool ret = hwinfo->suspend(FREEZE);
|
|
|
|
|
|
|
|
|
|
if (ret) {
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
KPassivePopup::message( i18n("WARNING"),i18n("Freeze failed"),
|
|
|
|
|
SmallIcon("messagebox_warning", 20), this,
|
|
|
|
|
i18n("Warning").ascii(), 15000);
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
KPassivePopup::message( i18n("WARNING"),i18n("Freeze disabled by administrator."),
|
|
|
|
|
SmallIcon("messagebox_warning", 20), this,
|
|
|
|
|
i18n("Warning").ascii(), 15000);
|
|
|
|
|
this->contextMenu()->setItemEnabled(FREEZE_MENU_ID, false);
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
kdWarning() << "This machine does not provide freeze suspend state" << endl;
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \b TQT_SLOT to send the command for "stand-by" to the TDE hardware library.
|
|
|
|
|
* If there is a error while "stand-by" the user get e messagebox.
|
|
|
|
|
* This function need a running HAL daemon for "stand-by".
|
|
|
|
|
* This function need a power management backend in TDE hardware library for "stand-by".
|
|
|
|
|
* \return boolean with the result of the operation
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if command not supported or if powersaved not running
|
|
|
|
@ -845,7 +902,7 @@ bool tdepowersave::do_standby(){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
kdWarning() << "This machine does not provide suspend2ram via HAL" << endl;
|
|
|
|
|
kdWarning() << "This machine does not provide standby suspend state" << endl;
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
@ -872,6 +929,11 @@ void tdepowersave::do_autosuspendWarn() {
|
|
|
|
|
allowed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (settings->autoInactiveAction == "Freeze") {
|
|
|
|
|
if ( suspend.freeze && (suspend.freeze_allowed || suspend.freeze_allowed == -1)) {
|
|
|
|
|
allowed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (settings->autoInactiveAction == "Standby") {
|
|
|
|
|
if ( suspend.standby && (suspend.standby_allowed || suspend.standby_allowed == -1)) {
|
|
|
|
|
allowed = true;
|
|
|
|
@ -890,6 +952,8 @@ void tdepowersave::do_autosuspendWarn() {
|
|
|
|
|
countdown->setPixmap("suspend2disk");
|
|
|
|
|
} else if (settings->autoInactiveAction == "Suspend to RAM") {
|
|
|
|
|
countdown->setPixmap("suspend2ram");
|
|
|
|
|
} else if (settings->autoInactiveAction == "Freeze") {
|
|
|
|
|
countdown->setPixmap("suspend2ram");
|
|
|
|
|
} else if (settings->autoInactiveAction == "Standby") {
|
|
|
|
|
countdown->setPixmap("standby");
|
|
|
|
|
} else {
|
|
|
|
@ -943,6 +1007,8 @@ bool tdepowersave::do_autosuspend(bool chancel) {
|
|
|
|
|
return do_suspend2disk();
|
|
|
|
|
} else if (settings->autoInactiveAction == "Suspend to RAM") {
|
|
|
|
|
return do_suspend2ram();
|
|
|
|
|
} else if (settings->autoInactiveAction == "Freeze") {
|
|
|
|
|
return do_freeze();
|
|
|
|
|
} else if (settings->autoInactiveAction == "Standby") {
|
|
|
|
|
return do_standby();
|
|
|
|
|
} else {
|
|
|
|
@ -1389,6 +1455,7 @@ void tdepowersave::update(){
|
|
|
|
|
if (!hwinfo->isOnline()){
|
|
|
|
|
this->contextMenu()->setItemVisible(SUSPEND2DISK_MENU_ID, false);
|
|
|
|
|
this->contextMenu()->setItemVisible(SUSPEND2RAM_MENU_ID, false);
|
|
|
|
|
this->contextMenu()->setItemVisible(FREEZE_MENU_ID, false);
|
|
|
|
|
this->contextMenu()->setItemVisible(STANDBY_MENU_ID, false);
|
|
|
|
|
this->contextMenu()->setItemVisible(SLEEP_SEPARATOR_MENU_ID, false);
|
|
|
|
|
this->contextMenu()->setItemVisible(SCHEME_SEPARATOR_MENU_ID, false);
|
|
|
|
@ -1411,6 +1478,7 @@ void tdepowersave::update(){
|
|
|
|
|
}
|
|
|
|
|
this->contextMenu()->setItemVisible(SUSPEND2DISK_MENU_ID, true);
|
|
|
|
|
this->contextMenu()->setItemVisible(SUSPEND2RAM_MENU_ID, true);
|
|
|
|
|
this->contextMenu()->setItemVisible(FREEZE_MENU_ID, true);
|
|
|
|
|
this->contextMenu()->setItemVisible(STANDBY_MENU_ID, true);
|
|
|
|
|
this->contextMenu()->setItemVisible(SLEEP_SEPARATOR_MENU_ID, true);
|
|
|
|
|
this->contextMenu()->setItemVisible(SCHEME_SEPARATOR_MENU_ID, true);
|
|
|
|
@ -1439,6 +1507,15 @@ void tdepowersave::update(){
|
|
|
|
|
this->contextMenu()->setItemEnabled(SUSPEND2RAM_MENU_ID, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (suspend.freeze && (suspend.freeze_allowed || suspend.freeze_allowed == -1)) {
|
|
|
|
|
this->contextMenu()->setItemEnabled(FREEZE_MENU_ID, true);
|
|
|
|
|
} else {
|
|
|
|
|
if (!suspend.freeze)
|
|
|
|
|
this->contextMenu()->setItemVisible(FREEZE_MENU_ID, false);
|
|
|
|
|
else
|
|
|
|
|
this->contextMenu()->setItemEnabled(FREEZE_MENU_ID, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (suspend.standby && (suspend.standby_allowed || suspend.standby_allowed == -1)) {
|
|
|
|
|
this->contextMenu()->setItemEnabled(STANDBY_MENU_ID, true);
|
|
|
|
|
} else {
|
|
|
|
@ -1840,6 +1917,11 @@ void tdepowersave::setAutoSuspend( bool resumed ){
|
|
|
|
|
allowed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (settings->autoInactiveAction == "Freeze") {
|
|
|
|
|
if ( suspend.freeze && (suspend.freeze_allowed || suspend.freeze_allowed == -1)) {
|
|
|
|
|
allowed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (settings->autoInactiveAction == "Standby") {
|
|
|
|
|
if ( suspend.standby && (suspend.standby_allowed || suspend.standby_allowed == -1)) {
|
|
|
|
|
allowed = true;
|
|
|
|
@ -2071,6 +2153,9 @@ void tdepowersave::handleActionCall ( action action, int value , bool checkAC, b
|
|
|
|
|
case GO_SUSPEND2DISK:
|
|
|
|
|
TQTimer::singleShot(100, this, TQT_SLOT(do_suspend2disk()));
|
|
|
|
|
break;
|
|
|
|
|
case GO_FREEZE:
|
|
|
|
|
TQTimer::singleShot(100, this, TQT_SLOT(do_freeze()));
|
|
|
|
|
break;
|
|
|
|
|
case BRIGHTNESS:
|
|
|
|
|
hwinfo->setBrightness( -1, value );
|
|
|
|
|
break;
|
|
|
|
@ -2192,6 +2277,11 @@ void tdepowersave::notifySuspend( int suspendType ) {
|
|
|
|
|
i18n("System is going into %1 now.").
|
|
|
|
|
arg(i18n("Suspend to RAM")));
|
|
|
|
|
break;
|
|
|
|
|
case FREEZE:
|
|
|
|
|
KNotifyClient::event( this->winId(), "freeze_event",
|
|
|
|
|
i18n("System is going into %1 now.").
|
|
|
|
|
arg(i18n("Freeze")));
|
|
|
|
|
break;
|
|
|
|
|
case STANDBY:
|
|
|
|
|
KNotifyClient::event( this->winId(), "standby_event",
|
|
|
|
|
i18n("System is going into %1 now.").
|
|
|
|
@ -2252,6 +2342,11 @@ void tdepowersave::handleResumeSignal() {
|
|
|
|
|
i18n("System is resumed from %1.").arg(
|
|
|
|
|
i18n("Suspend to RAM")));
|
|
|
|
|
break;
|
|
|
|
|
case FREEZE:
|
|
|
|
|
KNotifyClient::event( this->winId(), "resume_from_freeze_event",
|
|
|
|
|
i18n("System is resumed from %1.").arg(
|
|
|
|
|
i18n("Freeze")));
|
|
|
|
|
break;
|
|
|
|
|
case STANDBY:
|
|
|
|
|
KNotifyClient::event( this->winId(), "resume_from_standby_event",
|
|
|
|
|
i18n("System is resumed from %1.").arg(
|
|
|
|
@ -2301,6 +2396,10 @@ void tdepowersave::handleResumeSignal() {
|
|
|
|
|
logview = new LogViewer ("/var/log/suspend2ram.log");
|
|
|
|
|
logview->show();
|
|
|
|
|
break;
|
|
|
|
|
case FREEZE:
|
|
|
|
|
logview = new LogViewer ("/var/log/freeze.log");
|
|
|
|
|
logview->show();
|
|
|
|
|
break;
|
|
|
|
|
case STANDBY:
|
|
|
|
|
logview = new LogViewer ("/var/log/standby.log");
|
|
|
|
|
logview->show();
|
|
|
|
@ -2368,6 +2467,9 @@ TQString tdepowersave::getSuspendString (int type) {
|
|
|
|
|
case SUSPEND2RAM:
|
|
|
|
|
return i18n("Suspend to RAM");
|
|
|
|
|
break;
|
|
|
|
|
case FREEZE:
|
|
|
|
|
return i18n("Freeze");
|
|
|
|
|
break;
|
|
|
|
|
case STANDBY:
|
|
|
|
|
return i18n("Standby");
|
|
|
|
|
break;
|
|
|
|
@ -2517,6 +2619,9 @@ TQStringList tdepowersave::allowed_sleepingStates(){
|
|
|
|
|
suspend.suspend2ram_allowed == -1)){
|
|
|
|
|
sleepList.append("suspendToRAM");
|
|
|
|
|
}
|
|
|
|
|
if (suspend.freeze && (suspend.freeze_allowed || suspend.freeze_allowed == -1)){
|
|
|
|
|
sleepList.append("freeze");
|
|
|
|
|
}
|
|
|
|
|
if (suspend.standby && (suspend.standby_allowed || suspend.standby_allowed == -1)){
|
|
|
|
|
sleepList.append("standBy");
|
|
|
|
|
}
|
|
|
|
@ -2607,7 +2712,19 @@ bool tdepowersave::do_suspendToRAM(){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* DCOP Interface funtion to send the suspend to disk command to powersave.
|
|
|
|
|
* DCOP Interface funtion to send the freeze command to powersave.
|
|
|
|
|
* \return boolean with the result of calling do_freeze()
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if not supported or powersaved not running
|
|
|
|
|
*/
|
|
|
|
|
bool tdepowersave::do_suspendFreeze(){
|
|
|
|
|
kdDebugFuncIn(trace);
|
|
|
|
|
kdDebugFuncOut(trace);
|
|
|
|
|
return do_freeze();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* DCOP Interface funtion to send the standby command to powersave.
|
|
|
|
|
* \return boolean with the result of calling do_standby()
|
|
|
|
|
* \retval true if successful
|
|
|
|
|
* \retval false if not supported or powersaved not running
|
|
|
|
|