-rw-r--r-- | core/launcher/desktop.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp index 6ee7132..0e60839 100644 --- a/core/launcher/desktop.cpp +++ b/core/launcher/desktop.cpp | |||
@@ -163,34 +163,36 @@ public: | |||
163 | { | 163 | { |
164 | m_disable_suspend = 100; | 164 | m_disable_suspend = 100; |
165 | m_enable_dim = false; | 165 | m_enable_dim = false; |
166 | m_enable_lightoff = false; | 166 | m_enable_lightoff = false; |
167 | m_enable_onlylcdoff = false; | 167 | m_enable_onlylcdoff = false; |
168 | 168 | ||
169 | m_lcd_status = true; | 169 | m_lcd_status = true; |
170 | 170 | ||
171 | m_backlight_bright = -1; | 171 | m_backlight_bright = -1; |
172 | m_backlight_forcedoff = false; | 172 | m_backlight_forcedoff = false; |
173 | 173 | ||
174 | // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) | 174 | // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) |
175 | ODevice::inst ( ) -> setDisplayStatus ( true ); | 175 | ODevice::inst ( ) -> setDisplayStatus ( true ); |
176 | } | 176 | } |
177 | void restore() | 177 | void restore() |
178 | { | 178 | { |
179 | if ( !m_lcd_status ) // We must have turned it off | 179 | if ( !m_lcd_status ) { // We must have turned it off |
180 | ODevice::inst ( ) -> setDisplayStatus ( true ); | 180 | ODevice::inst ( ) -> setDisplayStatus ( true ); |
181 | m_lcd_status = true; | ||
182 | } | ||
181 | 183 | ||
182 | setBacklight ( -3 ); | 184 | setBacklight ( -3 ); |
183 | } | 185 | } |
184 | bool save( int level ) | 186 | bool save( int level ) |
185 | { | 187 | { |
186 | switch ( level ) { | 188 | switch ( level ) { |
187 | case 0: | 189 | case 0: |
188 | if ( m_disable_suspend > 0 && m_enable_dim ) { | 190 | if ( m_disable_suspend > 0 && m_enable_dim ) { |
189 | if ( backlight() > 1 ) | 191 | if ( backlight() > 1 ) |
190 | setBacklight( 1 ); // lowest non-off | 192 | setBacklight( 1 ); // lowest non-off |
191 | } | 193 | } |
192 | return true; | 194 | return true; |
193 | break; | 195 | break; |
194 | case 1: | 196 | case 1: |
195 | if ( m_disable_suspend > 1 && m_enable_lightoff ) { | 197 | if ( m_disable_suspend > 1 && m_enable_lightoff ) { |
196 | setBacklight( 0 ); // off | 198 | setBacklight( 0 ); // off |
@@ -290,32 +292,40 @@ public: | |||
290 | if ( m_backlight_forcedoff && bright != -2 ) | 292 | if ( m_backlight_forcedoff && bright != -2 ) |
291 | return ; | 293 | return ; |
292 | if ( bright == -2 ) { | 294 | if ( bright == -2 ) { |
293 | // Toggle between off and on | 295 | // Toggle between off and on |
294 | bright = m_backlight_bright ? 0 : -1; | 296 | bright = m_backlight_bright ? 0 : -1; |
295 | m_backlight_forcedoff = !bright; | 297 | m_backlight_forcedoff = !bright; |
296 | } | 298 | } |
297 | 299 | ||
298 | m_backlight_bright = bright; | 300 | m_backlight_bright = bright; |
299 | 301 | ||
300 | bright = backlight ( ); | 302 | bright = backlight ( ); |
301 | ODevice::inst ( ) -> setDisplayBrightness ( bright ); | 303 | ODevice::inst ( ) -> setDisplayBrightness ( bright ); |
302 | 304 | ||
303 | m_backlight_bright = bright; | 305 | m_backlight_bright = bright; |
304 | } | 306 | } |
305 | 307 | ||
308 | void setDisplayState ( bool on ) | ||
309 | { | ||
310 | if ( m_lcd_status != on ) { | ||
311 | ODevice::inst ( ) -> setDisplayStatus ( on ); | ||
312 | m_lcd_status = on; | ||
313 | } | ||
314 | } | ||
315 | |||
306 | private: | 316 | private: |
307 | int m_disable_suspend; | 317 | int m_disable_suspend; |
308 | bool m_enable_dim; | 318 | bool m_enable_dim; |
309 | bool m_enable_lightoff; | 319 | bool m_enable_lightoff; |
310 | bool m_enable_onlylcdoff; | 320 | bool m_enable_onlylcdoff; |
311 | 321 | ||
312 | bool m_lcd_status; | 322 | bool m_lcd_status; |
313 | 323 | ||
314 | int m_backlight_bright; | 324 | int m_backlight_bright; |
315 | bool m_backlight_forcedoff; | 325 | bool m_backlight_forcedoff; |
316 | }; | 326 | }; |
317 | 327 | ||
318 | 328 | ||
319 | void DesktopApplication::switchLCD ( bool on ) | 329 | void DesktopApplication::switchLCD ( bool on ) |
320 | { | 330 | { |
321 | if ( qApp ) { | 331 | if ( qApp ) { |
@@ -364,67 +374,69 @@ DesktopApplication::~DesktopApplication() | |||
364 | } | 374 | } |
365 | 375 | ||
366 | void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data ) | 376 | void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data ) |
367 | { | 377 | { |
368 | #ifdef Q_WS_QWS | 378 | #ifdef Q_WS_QWS |
369 | QDataStream stream( data, IO_ReadOnly ); | 379 | QDataStream stream( data, IO_ReadOnly ); |
370 | if ( msg == "keyRegister(int key, QString channel, QString message)" ) { | 380 | if ( msg == "keyRegister(int key, QString channel, QString message)" ) { |
371 | int k; | 381 | int k; |
372 | QString c, m; | 382 | QString c, m; |
373 | stream >> k; | 383 | stream >> k; |
374 | stream >> c; | 384 | stream >> c; |
375 | stream >> m; | 385 | stream >> m; |
376 | 386 | ||
377 | qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m ); | 387 | qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m ); |
378 | keyRegisterList.append( QCopKeyRegister( k, c, m ) ); | 388 | keyRegisterList.append( QCopKeyRegister( k, c, m ) ); |
379 | } | 389 | } |
380 | else if ( msg == "suspend()" ) { | ||
381 | emit power(); | ||
382 | } | ||
383 | else if ( msg == "home()" ) { | ||
384 | qpedesktop-> home ( ); | ||
385 | } | ||
386 | #endif | 390 | #endif |
387 | } | 391 | } |
388 | 392 | ||
389 | 393 | ||
390 | void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data ) | 394 | void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data ) |
391 | { | 395 | { |
392 | #ifdef Q_WS_QWS | 396 | #ifdef Q_WS_QWS |
393 | QDataStream stream ( data, IO_ReadOnly ); | 397 | QDataStream stream ( data, IO_ReadOnly ); |
394 | 398 | ||
395 | if ( msg == "setScreenSaverInterval(int)" ) { | 399 | if ( msg == "setScreenSaverInterval(int)" ) { |
396 | int time; | 400 | int time; |
397 | stream >> time; | 401 | stream >> time; |
398 | m_screensaver-> setInterval( time ); | 402 | m_screensaver-> setInterval( time ); |
399 | } | 403 | } |
400 | else if ( msg == "setScreenSaverIntervals(int,int,int)" ) { | 404 | else if ( msg == "setScreenSaverIntervals(int,int,int)" ) { |
401 | int t1, t2, t3; | 405 | int t1, t2, t3; |
402 | stream >> t1 >> t2 >> t3; | 406 | stream >> t1 >> t2 >> t3; |
403 | m_screensaver-> setIntervals( t1, t2, t3 ); | 407 | m_screensaver-> setIntervals( t1, t2, t3 ); |
404 | } | 408 | } |
405 | else if ( msg == "setBacklight(int)" ) { | 409 | else if ( msg == "setBacklight(int)" ) { |
406 | int bright; | 410 | int bright; |
407 | stream >> bright; | 411 | stream >> bright; |
408 | m_screensaver-> setBacklight( bright ); | 412 | m_screensaver-> setBacklight( bright ); |
409 | } | 413 | } |
410 | else if ( msg == "setScreenSaverMode(int)" ) { | 414 | else if ( msg == "setScreenSaverMode(int)" ) { |
411 | int mode; | 415 | int mode; |
412 | stream >> mode; | 416 | stream >> mode; |
413 | m_screensaver-> setMode ( mode ); | 417 | m_screensaver-> setMode ( mode ); |
414 | } | 418 | } |
419 | else if ( msg == "setDisplayState(int)" ) { | ||
420 | int state; | ||
421 | stream >> state; | ||
422 | m_screensaver-> setDisplayState ( state != 0 ); | ||
423 | } | ||
424 | else if ( msg == "suspend()" ) { | ||
425 | emit power(); | ||
426 | } | ||
415 | #endif | 427 | #endif |
416 | } | 428 | } |
417 | 429 | ||
418 | enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; | 430 | enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; |
419 | 431 | ||
420 | #ifdef Q_WS_QWS | 432 | #ifdef Q_WS_QWS |
421 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) | 433 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) |
422 | { | 434 | { |
423 | qpedesktop->checkMemory(); | 435 | qpedesktop->checkMemory(); |
424 | 436 | ||
425 | if ( e->type == QWSEvent::Key ) { | 437 | if ( e->type == QWSEvent::Key ) { |
426 | QWSKeyEvent * ke = ( QWSKeyEvent * ) e; | 438 | QWSKeyEvent * ke = ( QWSKeyEvent * ) e; |
427 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) | 439 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) |
428 | return TRUE; | 440 | return TRUE; |
429 | bool press = ke->simpleData.is_press; | 441 | bool press = ke->simpleData.is_press; |
430 | bool autoRepeat = ke->simpleData.is_auto_repeat; | 442 | bool autoRepeat = ke->simpleData.is_auto_repeat; |
@@ -615,32 +627,34 @@ Desktop::Desktop() : | |||
615 | launcher->showMaximized(); | 627 | launcher->showMaximized(); |
616 | launcher->show(); | 628 | launcher->show(); |
617 | launcher->raise(); | 629 | launcher->raise(); |
618 | #if defined(QPE_HAVE_MEMALERTER) | 630 | #if defined(QPE_HAVE_MEMALERTER) |
619 | 631 | ||
620 | initMemalerter(); | 632 | initMemalerter(); |
621 | #endif | 633 | #endif |
622 | // start services | 634 | // start services |
623 | startTransferServer(); | 635 | startTransferServer(); |
624 | ( void ) new IrServer( this ); | 636 | ( void ) new IrServer( this ); |
625 | rereadVolumes(); | 637 | rereadVolumes(); |
626 | 638 | ||
627 | packageSlave = new PackageSlave( this ); | 639 | packageSlave = new PackageSlave( this ); |
628 | connect( qApp, SIGNAL( volumeChanged( bool ) ), this, SLOT( rereadVolumes() ) ); | 640 | connect( qApp, SIGNAL( volumeChanged( bool ) ), this, SLOT( rereadVolumes() ) ); |
629 | 641 | ||
630 | qApp->installEventFilter( this ); | 642 | qApp->installEventFilter( this ); |
643 | |||
644 | qApp-> setMainWidget ( launcher ); | ||
631 | } | 645 | } |
632 | 646 | ||
633 | void Desktop::show() | 647 | void Desktop::show() |
634 | { | 648 | { |
635 | login( TRUE ); | 649 | login( TRUE ); |
636 | QWidget::show(); | 650 | QWidget::show(); |
637 | } | 651 | } |
638 | 652 | ||
639 | Desktop::~Desktop() | 653 | Desktop::~Desktop() |
640 | { | 654 | { |
641 | delete launcher; | 655 | delete launcher; |
642 | delete tb; | 656 | delete tb; |
643 | delete qcopBridge; | 657 | delete qcopBridge; |
644 | delete transferServer; | 658 | delete transferServer; |
645 | } | 659 | } |
646 | 660 | ||