-rw-r--r-- | core/launcher/desktop.cpp | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp index 4926b97..33bea36 100644 --- a/core/launcher/desktop.cpp +++ b/core/launcher/desktop.cpp | |||
@@ -381,56 +381,56 @@ private: | |||
381 | }; | 381 | }; |
382 | 382 | ||
383 | void DesktopApplication::switchLCD ( bool on ) | 383 | void DesktopApplication::switchLCD ( bool on ) |
384 | { | 384 | { |
385 | if ( qApp ) { | 385 | if ( qApp ) { |
386 | DesktopApplication *dapp = (DesktopApplication *) qApp; | 386 | DesktopApplication *dapp = (DesktopApplication *) qApp; |
387 | 387 | ||
388 | if ( dapp-> m_screensaver ) { | 388 | if ( dapp-> m_screensaver ) { |
389 | if ( on ) { | 389 | if ( on ) { |
390 | dapp-> m_screensaver-> setDisplayState ( true ); | 390 | dapp-> m_screensaver-> setDisplayState ( true ); |
391 | dapp-> m_screensaver-> setBacklight ( -3 ); | 391 | dapp-> m_screensaver-> setBacklight ( -3 ); |
392 | } | 392 | } |
393 | else { | 393 | else { |
394 | dapp-> m_screensaver-> setDisplayState ( false ); | 394 | dapp-> m_screensaver-> setDisplayState ( false ); |
395 | } | 395 | } |
396 | } | 396 | } |
397 | } | 397 | } |
398 | } | 398 | } |
399 | 399 | ||
400 | 400 | ||
401 | DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) | 401 | DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) |
402 | : QPEApplication( argc, argv, appType ) | 402 | : QPEApplication( argc, argv, appType ) |
403 | { | 403 | { |
404 | 404 | ||
405 | //FIXME, need also a method for setting different timer ( changed runtime ) | ||
406 | m_timer = new QTimer( this ); | 405 | m_timer = new QTimer( this ); |
407 | connect( m_timer, SIGNAL( timeout() ), this, SLOT( psTimeout() ) ); | 406 | connect( m_timer, SIGNAL( timeout() ), this, SLOT( apmTimeout() ) ); |
408 | Config cfg( "qpe" ); | 407 | Config cfg( "apm" ); |
409 | cfg.setGroup( "APM" ); | 408 | cfg.setGroup( "Warnings" ); |
410 | m_timer->start( cfg.readNumEntry( "check_interval", 10000 ) ); | 409 | m_timer->start( 5000 ); |
411 | m_powerVeryLow = cfg.readNumEntry( "power_verylow", 10 ); | 410 | //cfg.readNumEntry( "checkinterval", 10000 ) |
412 | m_powerCritical = cfg.readNumEntry( "power_critical", 5 ); | 411 | m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); |
412 | m_powerCritical = cfg.readNumEntry( "powercritical", 5 ); | ||
413 | ps = new PowerStatus; | 413 | ps = new PowerStatus; |
414 | pa = new DesktopPowerAlerter( 0 ); | 414 | pa = new DesktopPowerAlerter( 0 ); |
415 | 415 | ||
416 | channel = new QCopChannel( "QPE/Desktop", this ); | 416 | channel = new QCopChannel( "QPE/Desktop", this ); |
417 | connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), | 417 | connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), |
418 | this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) ); | 418 | this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) ); |
419 | 419 | ||
420 | channel = new QCopChannel( "QPE/System", this ); | 420 | channel = new QCopChannel( "QPE/System", this ); |
421 | connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), | 421 | connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), |
422 | this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); | 422 | this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); |
423 | 423 | ||
424 | m_screensaver = new QPEScreenSaver; | 424 | m_screensaver = new QPEScreenSaver; |
425 | 425 | ||
426 | m_screensaver-> setInterval ( -1 ); | 426 | m_screensaver-> setInterval ( -1 ); |
427 | QWSServer::setScreenSaver( m_screensaver ); | 427 | QWSServer::setScreenSaver( m_screensaver ); |
428 | } | 428 | } |
429 | 429 | ||
430 | 430 | ||
431 | DesktopApplication::~DesktopApplication() | 431 | DesktopApplication::~DesktopApplication() |
432 | { | 432 | { |
433 | delete ps; | 433 | delete ps; |
434 | delete pa; | 434 | delete pa; |
435 | } | 435 | } |
436 | 436 | ||
@@ -475,49 +475,49 @@ void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & | |||
475 | m_screensaver-> setBacklight( bright ); | 475 | m_screensaver-> setBacklight( bright ); |
476 | } | 476 | } |
477 | else if ( msg == "setScreenSaverMode(int)" ) { | 477 | else if ( msg == "setScreenSaverMode(int)" ) { |
478 | int mode; | 478 | int mode; |
479 | stream >> mode; | 479 | stream >> mode; |
480 | m_screensaver-> setMode ( mode ); | 480 | m_screensaver-> setMode ( mode ); |
481 | } | 481 | } |
482 | else if ( msg == "reloadPowerWarnSettings()" ) { | 482 | else if ( msg == "reloadPowerWarnSettings()" ) { |
483 | reloadPowerWarnSettings(); | 483 | reloadPowerWarnSettings(); |
484 | } | 484 | } |
485 | else if ( msg == "setDisplayState(int)" ) { | 485 | else if ( msg == "setDisplayState(int)" ) { |
486 | int state; | 486 | int state; |
487 | stream >> state; | 487 | stream >> state; |
488 | m_screensaver-> setDisplayState ( state != 0 ); | 488 | m_screensaver-> setDisplayState ( state != 0 ); |
489 | } | 489 | } |
490 | else if ( msg == "suspend()" ) { | 490 | else if ( msg == "suspend()" ) { |
491 | emit power(); | 491 | emit power(); |
492 | } | 492 | } |
493 | } | 493 | } |
494 | 494 | ||
495 | void DesktopApplication::reloadPowerWarnSettings() { | 495 | void DesktopApplication::reloadPowerWarnSettings() { |
496 | Config cfg( "apm" ); | 496 | Config cfg( "apm" ); |
497 | cfg.setGroup( "Warnings" ); | 497 | cfg.setGroup( "Warnings" ); |
498 | 498 | ||
499 | m_timer->changeInterval( cfg.readNumEntry( "checkinterval", 10000 ) ); | 499 | // m_timer->changeInterval( cfg.readNumEntry( "checkinterval", 10000 ) ); |
500 | m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); | 500 | m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); |
501 | m_powerCritical = cfg.readNumEntry( "powervcritical", 5 ); | 501 | m_powerCritical = cfg.readNumEntry( "powervcritical", 5 ); |
502 | } | 502 | } |
503 | 503 | ||
504 | 504 | ||
505 | enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; | 505 | enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; |
506 | 506 | ||
507 | #ifdef Q_WS_QWS | 507 | #ifdef Q_WS_QWS |
508 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) | 508 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) |
509 | { | 509 | { |
510 | qpedesktop->checkMemory(); | 510 | qpedesktop->checkMemory(); |
511 | 511 | ||
512 | if ( e->type == QWSEvent::Key ) { | 512 | if ( e->type == QWSEvent::Key ) { |
513 | QWSKeyEvent * ke = ( QWSKeyEvent * ) e; | 513 | QWSKeyEvent * ke = ( QWSKeyEvent * ) e; |
514 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) | 514 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) |
515 | return TRUE; | 515 | return TRUE; |
516 | bool press = ke->simpleData.is_press; | 516 | bool press = ke->simpleData.is_press; |
517 | bool autoRepeat = ke->simpleData.is_auto_repeat; | 517 | bool autoRepeat = ke->simpleData.is_auto_repeat; |
518 | 518 | ||
519 | /* | 519 | /* |
520 | app that registers key/message to be sent back to the app, when it doesn't have focus, | 520 | app that registers key/message to be sent back to the app, when it doesn't have focus, |
521 | when user presses key, unless keyboard has been requested from app. | 521 | when user presses key, unless keyboard has been requested from app. |
522 | will not send multiple repeats if user holds key | 522 | will not send multiple repeats if user holds key |
523 | i.e. one shot | 523 | i.e. one shot |
@@ -611,70 +611,81 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e ) | |||
611 | } | 611 | } |
612 | if ( ( press && !autoRepeat ) || ( !press && autoRepeat ) ) | 612 | if ( ( press && !autoRepeat ) || ( !press && autoRepeat ) ) |
613 | qpedesktop->keyClick(); | 613 | qpedesktop->keyClick(); |
614 | } | 614 | } |
615 | else { | 615 | else { |
616 | if ( e->type == QWSEvent::Mouse ) { | 616 | if ( e->type == QWSEvent::Mouse ) { |
617 | QWSMouseEvent * me = ( QWSMouseEvent * ) e; | 617 | QWSMouseEvent * me = ( QWSMouseEvent * ) e; |
618 | static bool up = TRUE; | 618 | static bool up = TRUE; |
619 | if ( me->simpleData.state & LeftButton ) { | 619 | if ( me->simpleData.state & LeftButton ) { |
620 | if ( up ) { | 620 | if ( up ) { |
621 | up = FALSE; | 621 | up = FALSE; |
622 | qpedesktop->screenClick(); | 622 | qpedesktop->screenClick(); |
623 | } | 623 | } |
624 | } | 624 | } |
625 | else { | 625 | else { |
626 | up = TRUE; | 626 | up = TRUE; |
627 | } | 627 | } |
628 | } | 628 | } |
629 | } | 629 | } |
630 | 630 | ||
631 | return QPEApplication::qwsEventFilter( e ); | 631 | return QPEApplication::qwsEventFilter( e ); |
632 | } | 632 | } |
633 | #endif | 633 | #endif |
634 | 634 | ||
635 | void DesktopApplication::psTimeout() | 635 | void DesktopApplication::psTimeout( int batRemaining ) |
636 | { | 636 | { |
637 | qpedesktop->checkMemory(); // in case no events are being generated | ||
638 | |||
639 | *ps = PowerStatusManager::readStatus(); | 637 | *ps = PowerStatusManager::readStatus(); |
640 | 638 | ||
639 | // maybe now since its triggered by apm change there might be to few warnings | ||
641 | // if ( ( ps->batteryStatus() == PowerStatus::VeryLow ) ) { | 640 | // if ( ( ps->batteryStatus() == PowerStatus::VeryLow ) ) { |
642 | if ( ( ps->batteryPercentRemaining() == m_powerVeryLow ) ) { | 641 | if ( ( batRemaining == m_powerVeryLow ) ) { |
643 | pa->alert( tr( "Battery is running very low." ), 6 ); | 642 | pa->alert( tr( "Battery is running very low." ), 6 ); |
644 | } | 643 | } |
645 | 644 | ||
646 | // if ( ps->batteryStatus() == PowerStatus::Critical ) { | 645 | // if ( ps->batteryStatus() == PowerStatus::Critical ) { |
647 | if ( ps->batteryPercentRemaining() == m_powerCritical ) { | 646 | if ( batRemaining == m_powerCritical ) { |
648 | pa->alert( tr( "Battery level is critical!\n" | 647 | pa->alert( tr( "Battery level is critical!\n" |
649 | "Keep power off until power restored!" ), 1 ); | 648 | "Keep power off until power restored!" ), 1 ); |
650 | } | 649 | } |
651 | 650 | ||
652 | if ( ps->backupBatteryStatus() == PowerStatus::VeryLow ) { | 651 | if ( ps->backupBatteryStatus() == PowerStatus::VeryLow ) { |
653 | pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 3 ); | 652 | pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 3 ); |
654 | } | 653 | } |
655 | } | 654 | } |
656 | 655 | ||
656 | void DesktopApplication::apmTimeout() | ||
657 | { | ||
658 | qpedesktop->checkMemory(); // in case no events are being generated | ||
659 | |||
660 | *ps = PowerStatusManager::readStatus(); | ||
661 | |||
662 | if ( m_currentPowerLevel != ps->batteryPercentRemaining() ) { | ||
663 | // not very nice, since psTimeout parses the again | ||
664 | m_currentPowerLevel = ps->batteryPercentRemaining(); | ||
665 | psTimeout( m_currentPowerLevel ); | ||
666 | } | ||
667 | } | ||
657 | 668 | ||
658 | void DesktopApplication::sendCard() | 669 | void DesktopApplication::sendCard() |
659 | { | 670 | { |
660 | delete cardSendTimer; | 671 | delete cardSendTimer; |
661 | cardSendTimer = 0; | 672 | cardSendTimer = 0; |
662 | QString card = getenv( "HOME" ); | 673 | QString card = getenv( "HOME" ); |
663 | card += "/Applications/addressbook/businesscard.vcf"; | 674 | card += "/Applications/addressbook/businesscard.vcf"; |
664 | 675 | ||
665 | if ( QFile::exists( card ) ) { | 676 | if ( QFile::exists( card ) ) { |
666 | QCopEnvelope e( "QPE/Obex", "send(QString,QString,QString)" ); | 677 | QCopEnvelope e( "QPE/Obex", "send(QString,QString,QString)" ); |
667 | QString mimetype = "text/x-vCard"; | 678 | QString mimetype = "text/x-vCard"; |
668 | e << tr( "business card" ) << card << mimetype; | 679 | e << tr( "business card" ) << card << mimetype; |
669 | } | 680 | } |
670 | } | 681 | } |
671 | 682 | ||
672 | #if defined(QPE_HAVE_MEMALERTER) | 683 | #if defined(QPE_HAVE_MEMALERTER) |
673 | QPE_MEMALERTER_IMPL | 684 | QPE_MEMALERTER_IMPL |
674 | #endif | 685 | #endif |
675 | 686 | ||
676 | //=========================================================================== | 687 | //=========================================================================== |
677 | 688 | ||
678 | Desktop::Desktop() : | 689 | Desktop::Desktop() : |
679 | QWidget( 0, 0, WStyle_Tool | WStyle_Customize ), | 690 | QWidget( 0, 0, WStyle_Tool | WStyle_Customize ), |
680 | qcopBridge( 0 ), | 691 | qcopBridge( 0 ), |