Exemplo n.º 1
0
/*!
    This function activates the appropriate actions for the given
    power management \a level.
*/
bool PhonePowerManager::save(int level)
{
    QSettings config("Trolltech", "qpe");
    config.beginGroup("HomeScreen");
    QString showHomeScreen = config.value("ShowHomeScreen", "Never").toString();    //Note: defaults need to be in sync with
    bool autoKeyLock = config.value("AutoKeyLock", false).toBool();                //defaults in homescreen settings app
    int action = m_levelToAction.value(level);
    qLog(PowerManagement) << "PhonePowerManager::save()" << "level" << level << "action" << action << "homescreen settings:" << showHomeScreen << autoKeyLock;

    switch (action) {
        case PhonePowerManager::DimLight:
            if ( m_powerConstraint > QtopiaApplication::Disable && m_dimLightEnabled ) {
                m_vso->setAttribute("ScreenSaver/CurrentLevel", 1 );
                if (backlight() > 1)
                    setBacklight(1); // lowest non-off
                qLog(PowerManagement) << "Dimming light";
                return true;
            }
            break;
        case PhonePowerManager::LightOff:
            if ( m_powerConstraint > QtopiaApplication::DisableLightOff
                    && m_lightOffEnabled ) {
                m_vso->setAttribute("ScreenSaver/CurrentLevel", 2 );
                setBacklight(0); // off

                if (showHomeScreen == "DisplayOff") {
                    qLog(PowerManagement) << "Showing HomeScreen";
                    QtopiaIpcEnvelope showHome("QPE/System", autoKeyLock ?
                                               "showHomeScreenAndKeylock()" : "showHomeScreen()");
                }

                qLog(PowerManagement) << "turning light off";
                return true;
            }
            break;
        case PhonePowerManager::Suspend:
            qLog(PowerManagement) << "case PhonePowerManager::Suspend:" << "m_powerConstraint" << m_powerConstraint << "m_suspendEnabled" << m_suspendEnabled;
            if (m_powerConstraint > QtopiaApplication::DisableSuspend
                    && m_suspendEnabled) {
                m_vso->setAttribute("ScreenSaver/CurrentLevel", 3 );

                if (showHomeScreen == "Suspend") {
                    qLog(PowerManagement) << "Showing HomeScreen";
                    QtopiaIpcEnvelope showHome("QPE/System", autoKeyLock ?
                                               "showHomeScreenAndKeylock()" : "showHomeScreen()");
                }
                qLog(PowerManagement) << "Suspending device";
                SystemSuspend *suspend = qtopiaTask<SystemSuspend>();
                suspend->suspendSystem();
                return true;
            }
            break;
        default:
            ;
    }
    return false;
}
Exemplo n.º 2
0
/*!
  \reimp
*/
void PhonePowerManager::forceSuspend()
{
    qLog(PowerManagement) << "PhonePowerManager::forceSuspend()";
    QSettings config("Trolltech", "qpe");
    config.beginGroup("HomeScreen");
    QString showHomeScreen = config.value("ShowHomeScreen", "Never").toString();    //Note: defaults need to be in sync with
    bool autoKeyLock = config.value("AutoKeyLock", false).toBool();                //defaults in homescreen settings app
    qLog(PowerManagement) << "HomeScreen settings:" << showHomeScreen << autoKeyLock;

    if ( m_suspendEnabled ) {
        if (showHomeScreen == "Suspend") {
            qLog(PowerManagement) << "Showing HomeScreen";
            QtopiaIpcEnvelope showHome("QPE/System", autoKeyLock ?
                                       "showHomeScreenAndKeylock()" : "showHomeScreen()");
        }
        qLog(PowerManagement) << "Suspending device";
        SystemSuspend *suspend = qtopiaTask<SystemSuspend>();
        suspend->suspendSystem();
    }
}