/*! 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; }
/*! \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(); } }