summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-10-22 21:41:42 (UTC)
committer harlekin <harlekin>2002-10-22 21:41:42 (UTC)
commite4297ff151693e07313ea036de91ad3c788c5e26 (patch) (side-by-side diff)
tree564bf451b6e6319944e3e793631f93d879031c74
parent4381aaf653750f4a51a816ff419be70059b2857d (diff)
downloadopie-e4297ff151693e07313ea036de91ad3c788c5e26.zip
opie-e4297ff151693e07313ea036de91ad3c788c5e26.tar.gz
opie-e4297ff151693e07313ea036de91ad3c788c5e26.tar.bz2
launcher side of the support for new light and power settings
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/desktop.cpp101
-rw-r--r--core/launcher/desktop.h5
2 files changed, 94 insertions, 12 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index d2bd8ae..4926b97 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -167,2 +167,7 @@ public:
+ m_disable_suspend_ac = 100;
+ m_enable_dim_ac = false;
+ m_enable_lightoff_ac = false;
+ m_enable_onlylcdoff_ac = false;
+
m_lcd_status = true;
@@ -188,5 +193,11 @@ public:
{
+ bool onAC = ( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online );
+
switch ( level ) {
case 0:
- if ( m_disable_suspend > 0 && m_enable_dim ) {
+
+ if ( m_disable_suspend_ac > 0 && m_enable_dim_ac && onAC ) {
+ if ( m_backlight_current > 1 )
+ setBacklight( 1 ); // lowest non-off
+ } else if ( m_disable_suspend > 0 && m_enable_dim ) {
if ( m_backlight_current > 1 )
@@ -197,3 +208,6 @@ public:
case 1:
- if ( m_disable_suspend > 1 && m_enable_lightoff ) {
+
+ if ( m_disable_suspend_ac > 1 && m_enable_lightoff_ac && onAC ) {
+ setBacklightInternal( 0 ); // off
+ } else if ( m_disable_suspend > 1 && m_enable_lightoff ) {
setBacklightInternal ( 0 ); // off
@@ -203,3 +217,8 @@ public:
case 2:
- if ( m_enable_onlylcdoff ) {
+ if ( m_enable_onlylcdoff_ac && onAC ) {
+ ODevice::inst ( ) -> setDisplayStatus ( false );
+ m_lcd_status = false;
+ return true;
+ }
+ else if ( m_enable_onlylcdoff ) {
ODevice::inst ( )-> setDisplayStatus ( false );
@@ -210,5 +229,7 @@ public:
{
- if ( ( m_disable_suspend > 2 ) &&
- ( PowerStatusManager::readStatus().acStatus() != PowerStatus::Online ) &&
- ( !Network::networkOnline ( ) ) ) {
+ if ( ( m_disable_suspend_ac > 2 && onAC ) && ( !Network::networkOnline ( ) ) ) {
+ QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE );
+ return true;
+ }
+ if ( ( m_disable_suspend > 2 ) && ( !Network::networkOnline ( ) ) ) {
QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE );
@@ -262,2 +283,28 @@ public:
+ void setIntervalsAC( int i1, int i2, int i3 )
+ {
+ Config config( "qpe" );
+ config.setGroup( "Screensaver" );
+
+ int v[ 4 ];
+ i1 = ssi( i1, config, "DimAC", "Interval_DimAC", 30 );
+ i2 = ssi( i2, config, "LightOffAC", "Interval_LightOffAC", 20 );
+ i3 = ssi( i3, config, "", "IntervalAC", 60 );
+
+ //qDebug("screen saver intervals: %d %d %d", i1, i2, i3);
+
+ v [ 0 ] = QMAX( 1000 * i1, 100 );
+ v [ 1 ] = QMAX( 1000 * i2, 100 );
+ v [ 2 ] = QMAX( 1000 * i3, 100 );
+ v [ 3 ] = 0;
+ m_enable_dim_ac = ( ( i1 != 0 ) ? config.readNumEntry ( "DimAC", 1 ) : false );
+ m_enable_lightoff_ac = ( ( i2 != 0 ) ? config.readNumEntry ( "LightOffAC", 1 ) : false );
+ m_enable_onlylcdoff_ac = config.readNumEntry ( "LcdOffOnlyAC", 0 );
+
+ if ( !i1 && !i2 && !i3 )
+ QWSServer::setScreenSaverInterval( 0 );
+ else
+ QWSServer::setScreenSaverIntervals( v );
+ }
+
void setInterval ( int interval )
@@ -323,2 +370,7 @@ private:
+ int m_disable_suspend_ac;
+ bool m_enable_dim_ac;
+ bool m_enable_lightoff_ac;
+ bool m_enable_onlylcdoff_ac;
+
bool m_lcd_status;
@@ -352,5 +404,10 @@ DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType )
- QTimer * t = new QTimer( this );
- connect( t, SIGNAL( timeout() ), this, SLOT( psTimeout() ) );
- t->start( 10000 );
+ //FIXME, need also a method for setting different timer ( changed runtime )
+ m_timer = new QTimer( this );
+ connect( m_timer, SIGNAL( timeout() ), this, SLOT( psTimeout() ) );
+ Config cfg( "qpe" );
+ cfg.setGroup( "APM" );
+ m_timer->start( cfg.readNumEntry( "check_interval", 10000 ) );
+ m_powerVeryLow = cfg.readNumEntry( "power_verylow", 10 );
+ m_powerCritical = cfg.readNumEntry( "power_critical", 5 );
ps = new PowerStatus;
@@ -409,2 +466,7 @@ void DesktopApplication::systemMessage( const QCString & msg, const QByteArray &
}
+ else if ( msg == "setScreenSaverIntervalsAC(int,int,int)" ) {
+ int t1, t2, t3;
+ stream >> t1 >> t2 >> t3;
+ m_screensaver-> setIntervalsAC( t1, t2, t3 );
+ }
else if ( msg == "setBacklight(int)" ) {
@@ -419,2 +481,5 @@ void DesktopApplication::systemMessage( const QCString & msg, const QByteArray &
}
+ else if ( msg == "reloadPowerWarnSettings()" ) {
+ reloadPowerWarnSettings();
+ }
else if ( msg == "setDisplayState(int)" ) {
@@ -429,2 +494,12 @@ void DesktopApplication::systemMessage( const QCString & msg, const QByteArray &
+void DesktopApplication::reloadPowerWarnSettings() {
+ Config cfg( "apm" );
+ cfg.setGroup( "Warnings" );
+
+ m_timer->changeInterval( cfg.readNumEntry( "checkinterval", 10000 ) );
+ m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 );
+ m_powerCritical = cfg.readNumEntry( "powervcritical", 5 );
+}
+
+
enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown;
@@ -481,3 +556,3 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
}
-// menu key now opens application menu/toolbar
+
// if ( ke->simpleData.keycode == Key_F11 ) {
@@ -565,3 +640,4 @@ void DesktopApplication::psTimeout()
- if ( ( ps->batteryStatus() == PowerStatus::VeryLow ) ) {
+ // if ( ( ps->batteryStatus() == PowerStatus::VeryLow ) ) {
+ if ( ( ps->batteryPercentRemaining() == m_powerVeryLow ) ) {
pa->alert( tr( "Battery is running very low." ), 6 );
@@ -569,3 +645,4 @@ void DesktopApplication::psTimeout()
- if ( ps->batteryStatus() == PowerStatus::Critical ) {
+ // if ( ps->batteryStatus() == PowerStatus::Critical ) {
+ if ( ps->batteryPercentRemaining() == m_powerCritical ) {
pa->alert( tr( "Battery level is critical!\n"
diff --git a/core/launcher/desktop.h b/core/launcher/desktop.h
index 04c2f61..15d8ef7 100644
--- a/core/launcher/desktop.h
+++ b/core/launcher/desktop.h
@@ -82,2 +82,3 @@ protected slots:
private:
+ void reloadPowerWarnSettings();
DesktopPowerAlerter *pa;
@@ -87,2 +88,6 @@ private:
QPEScreenSaver *m_screensaver;
+ QTimer * m_timer;
+ int m_powerVeryLow;
+ int m_powerCritical;
+
};