summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-10-22 23:34:24 (UTC)
committer harlekin <harlekin>2002-10-22 23:34:24 (UTC)
commita4dccc9ce6de0bf75d11688b01f2cc010da3647e (patch) (unidiff)
tree80c6c360b67bad9af77d79888bef97fa6feabc76
parente4297ff151693e07313ea036de91ad3c788c5e26 (diff)
downloadopie-a4dccc9ce6de0bf75d11688b01f2cc010da3647e.zip
opie-a4dccc9ce6de0bf75d11688b01f2cc010da3647e.tar.gz
opie-a4dccc9ce6de0bf75d11688b01f2cc010da3647e.tar.bz2
timer is now more separated from warnings
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp37
-rw-r--r--core/launcher/desktop.h23
2 files changed, 36 insertions, 24 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
@@ -373,72 +373,72 @@ private:
373 bool m_enable_lightoff_ac; 373 bool m_enable_lightoff_ac;
374 bool m_enable_onlylcdoff_ac; 374 bool m_enable_onlylcdoff_ac;
375 375
376 bool m_lcd_status; 376 bool m_lcd_status;
377 377
378 int m_backlight_normal; 378 int m_backlight_normal;
379 int m_backlight_current; 379 int m_backlight_current;
380 bool m_backlight_forcedoff; 380 bool m_backlight_forcedoff;
381}; 381};
382 382
383void DesktopApplication::switchLCD ( bool on ) 383void 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
401DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) 401DesktopApplication::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
431DesktopApplication::~DesktopApplication() 431DesktopApplication::~DesktopApplication()
432{ 432{
433 delete ps; 433 delete ps;
434 delete pa; 434 delete pa;
435} 435}
436 436
437void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data ) 437void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data )
438{ 438{
439 QDataStream stream( data, IO_ReadOnly ); 439 QDataStream stream( data, IO_ReadOnly );
440 if ( msg == "keyRegister(int key, QString channel, QString message)" ) { 440 if ( msg == "keyRegister(int key, QString channel, QString message)" ) {
441 int k; 441 int k;
442 QString c, m; 442 QString c, m;
443 stream >> k; 443 stream >> k;
444 stream >> c; 444 stream >> c;
@@ -467,65 +467,65 @@ void DesktopApplication::systemMessage( const QCString & msg, const QByteArray &
467 else if ( msg == "setScreenSaverIntervalsAC(int,int,int)" ) { 467 else if ( msg == "setScreenSaverIntervalsAC(int,int,int)" ) {
468 int t1, t2, t3; 468 int t1, t2, t3;
469 stream >> t1 >> t2 >> t3; 469 stream >> t1 >> t2 >> t3;
470 m_screensaver-> setIntervalsAC( t1, t2, t3 ); 470 m_screensaver-> setIntervalsAC( t1, t2, t3 );
471 } 471 }
472 else if ( msg == "setBacklight(int)" ) { 472 else if ( msg == "setBacklight(int)" ) {
473 int bright; 473 int bright;
474 stream >> bright; 474 stream >> bright;
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
495void DesktopApplication::reloadPowerWarnSettings() { 495void 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
505enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown; 505enum MemState { Unknown, VeryLow, Low, Normal } memstate = Unknown;
506 506
507#ifdef Q_WS_QWS 507#ifdef Q_WS_QWS
508bool DesktopApplication::qwsEventFilter( QWSEvent *e ) 508bool 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
524 */ 524 */
525 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) { 525 if ( !keyRegisterList.isEmpty() && ke->simpleData.keycode !=0 && press) {
526// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode); 526// qDebug("<<<<<<<<<<<<<keycode %d", ke->simpleData.keycode);
527 KeyRegisterList::Iterator it; 527 KeyRegisterList::Iterator it;
528 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) { 528 for ( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) {
529 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) { 529 if ( ( *it ).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() ) {
530 if ( press ) 530 if ( press )
531 qDebug( "press" ); 531 qDebug( "press" );
@@ -603,86 +603,97 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
603 } 603 }
604 if ( ke->simpleData.keycode == Key_NumLock ) { 604 if ( ke->simpleData.keycode == Key_NumLock ) {
605 if ( press ) 605 if ( press )
606 emit numLockStateToggle(); 606 emit numLockStateToggle();
607 } 607 }
608 if ( ke->simpleData.keycode == Key_CapsLock ) { 608 if ( ke->simpleData.keycode == Key_CapsLock ) {
609 if ( press ) 609 if ( press )
610 emit capsLockStateToggle(); 610 emit capsLockStateToggle();
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
635void DesktopApplication::psTimeout() 635void 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
656void 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
658void DesktopApplication::sendCard() 669void 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)
673QPE_MEMALERTER_IMPL 684QPE_MEMALERTER_IMPL
674#endif 685#endif
675 686
676//=========================================================================== 687//===========================================================================
677 688
678Desktop::Desktop() : 689Desktop::Desktop() :
679 QWidget( 0, 0, WStyle_Tool | WStyle_Customize ), 690 QWidget( 0, 0, WStyle_Tool | WStyle_Customize ),
680 qcopBridge( 0 ), 691 qcopBridge( 0 ),
681 transferServer( 0 ), 692 transferServer( 0 ),
682 packageSlave( 0 ) 693 packageSlave( 0 )
683{ 694{
684 qpedesktop = this; 695 qpedesktop = this;
685 696
686 // bg = new Info( this ); 697 // bg = new Info( this );
687 tb = new TaskBar; 698 tb = new TaskBar;
688 699
diff --git a/core/launcher/desktop.h b/core/launcher/desktop.h
index 15d8ef7..8308811 100644
--- a/core/launcher/desktop.h
+++ b/core/launcher/desktop.h
@@ -48,77 +48,78 @@ public:
48 48
49 static void switchLCD ( bool on ); // only for togglePower in Desktop 49 static void switchLCD ( bool on ); // only for togglePower in Desktop
50 50
51signals: 51signals:
52 void menu(); 52 void menu();
53 void home(); 53 void home();
54 void datebook(); 54 void datebook();
55 void contacts(); 55 void contacts();
56 void launch(); 56 void launch();
57 void email(); 57 void email();
58 void backlight(); 58 void backlight();
59 void power(); 59 void power();
60 void symbol(); 60 void symbol();
61 void numLockStateToggle(); 61 void numLockStateToggle();
62 void capsLockStateToggle(); 62 void capsLockStateToggle();
63 void prepareForRestart(); 63 void prepareForRestart();
64 64
65protected: 65protected:
66#ifdef Q_WS_QWS 66#ifdef Q_WS_QWS
67 67
68 bool qwsEventFilter( QWSEvent * ); 68 bool qwsEventFilter( QWSEvent * );
69#endif 69#endif
70 70
71 void shutdown(); 71 void shutdown();
72 void restart(); 72 void restart();
73 73
74public slots: 74public slots:
75 virtual void desktopMessage ( const QCString &msg, const QByteArray &data ); 75 virtual void desktopMessage ( const QCString &msg, const QByteArray &data );
76 virtual void systemMessage ( const QCString &msg, const QByteArray &data ); 76 virtual void systemMessage ( const QCString &msg, const QByteArray &data );
77 77
78protected slots: 78protected slots:
79 void shutdown( ShutdownImpl::Type ); 79 void shutdown( ShutdownImpl::Type );
80 void psTimeout(); 80 void psTimeout( int );
81 void apmTimeout();
81 void sendCard(); 82 void sendCard();
82private: 83private:
83 void reloadPowerWarnSettings(); 84 void reloadPowerWarnSettings();
84 DesktopPowerAlerter *pa; 85 DesktopPowerAlerter *pa;
85 PowerStatus *ps; 86 PowerStatus *ps;
86 QTimer *cardSendTimer; 87 QTimer *cardSendTimer;
87 QCopChannel *channel; 88 QCopChannel *channel;
88 QPEScreenSaver *m_screensaver; 89 QPEScreenSaver *m_screensaver;
89 QTimer * m_timer; 90 QTimer * m_timer;
90 int m_powerVeryLow; 91 int m_powerVeryLow;
91 int m_powerCritical; 92 int m_powerCritical;
92 93 int m_currentPowerLevel;
93}; 94};
94 95
95 96
96class Desktop : public QWidget 97class Desktop : public QWidget
97{ 98{
98 Q_OBJECT 99 Q_OBJECT
99public: 100public:
100 Desktop(); 101 Desktop();
101 ~Desktop(); 102 ~Desktop();
102 103
103 static bool screenLocked(); 104 static bool screenLocked();
104 105
105 void show(); 106 void show();
106 void checkMemory(); 107 void checkMemory();
107 108
108 void keyClick(); 109 void keyClick();
109 void screenClick(); 110 void screenClick();
110 static void soundAlarm(); 111 static void soundAlarm();
111 112
112public slots: 113public slots:
113 void raiseDatebook(); 114 void raiseDatebook();
114 void raiseContacts(); 115 void raiseContacts();
115 void raiseMenu(); 116 void raiseMenu();
116 void raiseLauncher(); 117 void raiseLauncher();
117 void raiseEmail(); 118 void raiseEmail();
118 void execAutoStart(); 119 void execAutoStart();
119 void togglePower(); 120 void togglePower();
120 void toggleLight(); 121 void toggleLight();
121 void toggleNumLockState(); 122 void toggleNumLockState();
122 void toggleCapsLockState(); 123 void toggleCapsLockState();
123 void toggleSymbolInput(); 124 void toggleSymbolInput();
124 void terminateServers(); 125 void terminateServers();