summaryrefslogtreecommitdiff
authorar <ar>2004-06-09 21:22:32 (UTC)
committer ar <ar>2004-06-09 21:22:32 (UTC)
commitebe42d8fd16f7e8f23e110650b3e1e2728e857d8 (patch) (unidiff)
treef5de89bb47c46f7353f8c6fb58c4f5071aa393d9
parent044e457d601a2d38a0debe25f8babca5d0ca764f (diff)
downloadopie-ebe42d8fd16f7e8f23e110650b3e1e2728e857d8.zip
opie-ebe42d8fd16f7e8f23e110650b3e1e2728e857d8.tar.gz
opie-ebe42d8fd16f7e8f23e110650b3e1e2728e857d8.tar.bz2
- improve BigScreen on ShutDown
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/serverapp.cpp278
1 files changed, 138 insertions, 140 deletions
diff --git a/core/launcher/serverapp.cpp b/core/launcher/serverapp.cpp
index 807942d..54cc313 100644
--- a/core/launcher/serverapp.cpp
+++ b/core/launcher/serverapp.cpp
@@ -96,14 +96,14 @@ class DesktopPowerAlerter : public QMessageBox
96 Q_OBJECT 96 Q_OBJECT
97public: 97public:
98 DesktopPowerAlerter( QWidget *parent, const char *name = 0 ) 98 DesktopPowerAlerter( QWidget *parent, const char *name = 0 )
99 : QMessageBox( tr("Battery Status"), tr("Low Battery"), 99 : QMessageBox( tr("Battery Status"), tr("Low Battery"),
100 QMessageBox::Critical, 100 QMessageBox::Critical,
101 QMessageBox::Ok | QMessageBox::Default, 101 QMessageBox::Ok | QMessageBox::Default,
102 QMessageBox::NoButton, QMessageBox::NoButton, 102 QMessageBox::NoButton, QMessageBox::NoButton,
103 parent, name, FALSE ) 103 parent, name, FALSE )
104 { 104 {
105 currentPriority = INT_MAX; 105 currentPriority = INT_MAX;
106 alertCount = 0; 106 alertCount = 0;
107 } 107 }
108 108
109 void alert( const QString &text, int priority ); 109 void alert( const QString &text, int priority );
@@ -117,9 +117,9 @@ void DesktopPowerAlerter::alert( const QString &text, int priority )
117{ 117{
118 alertCount++; 118 alertCount++;
119 if ( alertCount < priority ) 119 if ( alertCount < priority )
120 return; 120 return;
121 if ( priority > currentPriority ) 121 if ( priority > currentPriority )
122 return; 122 return;
123 currentPriority = priority; 123 currentPriority = priority;
124 setText( text ); 124 setText( text );
125 show(); 125 show();
@@ -146,13 +146,13 @@ KeyFilter::KeyFilter(QObject* parent) : QObject(parent), held_tid(0), heldButton
146void KeyFilter::timerEvent(QTimerEvent* e) 146void KeyFilter::timerEvent(QTimerEvent* e)
147{ 147{
148 if ( e->timerId() == held_tid ) { 148 if ( e->timerId() == held_tid ) {
149 killTimer(held_tid); 149 killTimer(held_tid);
150 // button held 150 // button held
151 if ( heldButton ) { 151 if ( heldButton ) {
152 emit activate(heldButton, TRUE); 152 emit activate(heldButton, TRUE);
153 heldButton = 0; 153 heldButton = 0;
154 } 154 }
155 held_tid = 0; 155 held_tid = 0;
156 } 156 }
157} 157}
158 158
@@ -178,17 +178,17 @@ bool KeyFilter::keyRegistered( int key ) {
178bool KeyFilter::checkButtonAction(bool db, int keycode, int press, int autoRepeat) 178bool KeyFilter::checkButtonAction(bool db, int keycode, int press, int autoRepeat)
179{ 179{
180 if ( !loggedin 180 if ( !loggedin
181 // Permitted keys 181 // Permitted keys
182 && keycode != Key_F34 // power 182 && keycode != Key_F34 // power
183 && keycode != Key_F30 // select 183 && keycode != Key_F30 // select
184 && keycode != Key_Enter 184 && keycode != Key_Enter
185 && keycode != Key_Return 185 && keycode != Key_Return
186 && keycode != Key_Space 186 && keycode != Key_Space
187 && keycode != Key_Left 187 && keycode != Key_Left
188 && keycode != Key_Right 188 && keycode != Key_Right
189 && keycode != Key_Up 189 && keycode != Key_Up
190 && keycode != Key_Down ) 190 && keycode != Key_Down )
191 return TRUE; 191 return TRUE;
192 192
193 /* check if it was registered */ 193 /* check if it was registered */
194 if (!db ) { 194 if (!db ) {
@@ -320,7 +320,7 @@ ServerApplication::ServerApplication( int& argc, char **argv, Type t )
320 /* ### PluginLoader libqtopia SafeMode */ 320 /* ### PluginLoader libqtopia SafeMode */
321#if 0 321#if 0
322 if ( PluginLoader::inSafeMode() ) 322 if ( PluginLoader::inSafeMode() )
323 QTimer::singleShot(500, this, SLOT(showSafeMode()) ); 323 QTimer::singleShot(500, this, SLOT(showSafeMode()) );
324 QTimer::singleShot(20*1000, this, SLOT(clearSafeMode()) ); 324 QTimer::singleShot(20*1000, this, SLOT(clearSafeMode()) );
325#endif 325#endif
326 326
@@ -379,29 +379,29 @@ void ServerApplication::apmTimeout() {
379 379
380 if ( bat < m_ps_last-> batteryPercentRemaining() ) { 380 if ( bat < m_ps_last-> batteryPercentRemaining() ) {
381 if ( bat <= m_powerCritical ) { 381 if ( bat <= m_powerCritical ) {
382 QMessageBox battlow( 382 QMessageBox battlow(
383 tr("WARNING"), 383 tr("WARNING"),
384 tr("<p>The battery level is critical!" 384 tr("<p>The battery level is critical!"
385 "<p>Keep power off until AC is restored"), 385 "<p>Keep power off until AC is restored"),
386 QMessageBox::Warning, 386 QMessageBox::Warning,
387 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton, 387 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton,
388 0, QString::null, TRUE, WStyle_StaysOnTop); 388 0, QString::null, TRUE, WStyle_StaysOnTop);
389 battlow.setButtonText(QMessageBox::Cancel, tr("Ok")); 389 battlow.setButtonText(QMessageBox::Cancel, tr("Ok"));
390 battlow.exec(); 390 battlow.exec();
391 } else if ( bat <= m_powerVeryLow ) 391 } else if ( bat <= m_powerVeryLow )
392 pa->alert( tr( "The battery is running very low. "), 2 ); 392 pa->alert( tr( "The battery is running very low. "), 2 );
393 } 393 }
394 394
395 if ( m_ps-> backupBatteryStatus() == PowerStatus::VeryLow ) { 395 if ( m_ps-> backupBatteryStatus() == PowerStatus::VeryLow ) {
396 QMessageBox battlow( 396 QMessageBox battlow(
397 tr("WARNING"), 397 tr("WARNING"),
398 tr("<p>The Back-up battery is very low" 398 tr("<p>The Back-up battery is very low"
399 "<p>Please charge the back-up battery"), 399 "<p>Please charge the back-up battery"),
400 QMessageBox::Warning, 400 QMessageBox::Warning,
401 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton, 401 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton,
402 0, QString::null, TRUE, WStyle_StaysOnTop); 402 0, QString::null, TRUE, WStyle_StaysOnTop);
403 battlow.setButtonText(QMessageBox::Cancel, tr("Ok")); 403 battlow.setButtonText(QMessageBox::Cancel, tr("Ok"));
404 battlow.exec(); 404 battlow.exec();
405 } 405 }
406} 406}
407 407
@@ -495,11 +495,11 @@ bool ServerApplication::screenLocked()
495void ServerApplication::login(bool at_poweron) 495void ServerApplication::login(bool at_poweron)
496{ 496{
497 if ( !loggedin ) { 497 if ( !loggedin ) {
498 Global::terminateBuiltin("calibrate"); // No tr 498 Global::terminateBuiltin("calibrate"); // No tr
499 Password::authenticate(at_poweron); 499 Password::authenticate(at_poweron);
500 loggedin=1; 500 loggedin=1;
501#ifndef QT_NO_COP 501#ifndef QT_NO_COP
502 QCopEnvelope e( "QPE/Desktop", "unlocked()" ); 502 QCopEnvelope e( "QPE/Desktop", "unlocked()" );
503#endif 503#endif
504 } 504 }
505} 505}
@@ -547,64 +547,64 @@ static void darkScreen()
547namespace { 547namespace {
548 void execAutoStart(const QDateTime& suspendTime ) { 548 void execAutoStart(const QDateTime& suspendTime ) {
549 QString appName; 549 QString appName;
550 int delay; 550 int delay;
551 QDateTime now = QDateTime::currentDateTime(); 551 QDateTime now = QDateTime::currentDateTime();
552 552
553 Config cfg( "autostart" ); 553 Config cfg( "autostart" );
554 cfg.setGroup( "AutoStart" ); 554 cfg.setGroup( "AutoStart" );
555 appName = cfg.readEntry( "Apps", "" ); 555 appName = cfg.readEntry( "Apps", "" );
556 delay = cfg.readNumEntry( "Delay", 0 ); 556 delay = cfg.readNumEntry( "Delay", 0 );
557 557
558 // If the time between suspend and resume was longer then the 558 // If the time between suspend and resume was longer then the
559 // value saved as delay, start the app 559 // value saved as delay, start the app
560 if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) { 560 if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) {
561 QCopEnvelope e( "QPE/System", "execute(QString)" ); 561 QCopEnvelope e( "QPE/System", "execute(QString)" );
562 e << QString( appName ); 562 e << QString( appName );
563 } 563 }
564 } 564 }
565} 565}
566 566
567 567
568void ServerApplication::togglePower() 568void ServerApplication::togglePower()
569{ 569{
570 static bool excllock = false; 570 static bool excllock = false;
571 571
572 if ( excllock ) 572 if ( excllock )
573 return ; 573 return ;
574 574
575 excllock = true; 575 excllock = true;
576 576
577 bool wasloggedin = loggedin; 577 bool wasloggedin = loggedin;
578 loggedin = 0; 578 loggedin = 0;
579 m_suspendTime = QDateTime::currentDateTime(); 579 m_suspendTime = QDateTime::currentDateTime();
580 580
581#ifdef QWS 581#ifdef QWS
582 582
583 if ( Password::needToAuthenticate ( true ) && qt_screen ) { 583 if ( Password::needToAuthenticate ( true ) && qt_screen ) {
584 // Should use a big black window instead. 584 // Should use a big black window instead.
585 // But this would not show up fast enough 585 // But this would not show up fast enough
586 QGfx *g = qt_screen-> screenGfx ( ); 586 QGfx *g = qt_screen-> screenGfx ( );
587 g-> fillRect ( 0, 0, qt_screen-> width ( ), qt_screen-> height ( )); 587 g-> fillRect ( 0, 0, qt_screen-> width ( ), qt_screen-> height ( ));
588 delete g; 588 delete g;
589 } 589 }
590#endif 590#endif
591 591
592 ODevice::inst ( )-> suspend ( ); 592 ODevice::inst ( )-> suspend ( );
593 593
594 ServerApplication::switchLCD ( true ); // force LCD on without slow qcop call 594 ServerApplication::switchLCD ( true ); // force LCD on without slow qcop call
595 QWSServer::screenSaverActivate ( false ); 595 QWSServer::screenSaverActivate ( false );
596 596
597 { 597 {
598 QCopEnvelope( "QPE/Card", "mtabChanged()" ); // might have changed while asleep 598 QCopEnvelope( "QPE/Card", "mtabChanged()" ); // might have changed while asleep
599 } 599 }
600 600
601 if ( wasloggedin ) 601 if ( wasloggedin )
602 login ( true ); 602 login ( true );
603 603
604 execAutoStart(m_suspendTime); 604 execAutoStart(m_suspendTime);
605 //qcopBridge->closeOpenConnections(); 605 //qcopBridge->closeOpenConnections();
606 606
607 excllock = false; 607 excllock = false;
608} 608}
609 609
610void ServerApplication::toggleLight() 610void ServerApplication::toggleLight()
@@ -642,17 +642,17 @@ bool ServerApplication::qwsEventFilter( QWSEvent *e )
642 checkMemory(); 642 checkMemory();
643 643
644 if ( e->type == QWSEvent::Mouse ) { 644 if ( e->type == QWSEvent::Mouse ) {
645 QWSMouseEvent *me = (QWSMouseEvent *)e; 645 QWSMouseEvent *me = (QWSMouseEvent *)e;
646 static bool up = TRUE; 646 static bool up = TRUE;
647 if ( me->simpleData.state&LeftButton ) { 647 if ( me->simpleData.state&LeftButton ) {
648 if ( up ) { 648 if ( up ) {
649 up = FALSE; 649 up = FALSE;
650 screenClick(TRUE); 650 screenClick(TRUE);
651 } 651 }
652 } else if ( !up ) { 652 } else if ( !up ) {
653 up = TRUE; 653 up = TRUE;
654 screenClick(FALSE); 654 screenClick(FALSE);
655 } 655 }
656 }else if ( e->type == QWSEvent::Key ) { 656 }else if ( e->type == QWSEvent::Key ) {
657 QWSKeyEvent * ke = static_cast<QWSKeyEvent*>( e ); 657 QWSKeyEvent * ke = static_cast<QWSKeyEvent*>( e );
658 if ( kf->checkButtonAction( false, 658 if ( kf->checkButtonAction( false,
@@ -673,11 +673,11 @@ void ServerApplication::showSafeMode()
673{ 673{
674#if 0 674#if 0
675 if ( QMessageBox::warning(0, tr("Safe Mode"), tr("<P>A system startup error occurred, " 675 if ( QMessageBox::warning(0, tr("Safe Mode"), tr("<P>A system startup error occurred, "
676 "and the system is now in Safe Mode. " 676 "and the system is now in Safe Mode. "
677 "Plugins are not loaded in Safe Mode. " 677 "Plugins are not loaded in Safe Mode. "
678 "You can use the Plugin Manager to " 678 "You can use the Plugin Manager to "
679 "disable plugins that cause system error."), tr("OK"), tr("Plugin Manager..."), 0) == 1 ) { 679 "disable plugins that cause system error."), tr("OK"), tr("Plugin Manager..."), 0) == 1 ) {
680 Global::execute( "pluginmanager" ); 680 Global::execute( "pluginmanager" );
681 } 681 }
682#endif 682#endif
683} 683}
@@ -691,7 +691,7 @@ void ServerApplication::clearSafeMode()
691 cfg.setGroup( "Global" ); 691 cfg.setGroup( "Global" );
692 QString mode = cfg.readEntry( "Mode", "Normal" ); 692 QString mode = cfg.readEntry( "Mode", "Normal" );
693 if ( mode == "MaybeSafe" ) { 693 if ( mode == "MaybeSafe" ) {
694 cfg.writeEntry( "Mode", "Normal" ); 694 cfg.writeEntry( "Mode", "Normal" );
695 } 695 }
696#endif 696#endif
697} 697}
@@ -700,13 +700,11 @@ void ServerApplication::clearSafeMode()
700void ServerApplication::shutdown() 700void ServerApplication::shutdown()
701{ 701{
702 if ( type() != GuiServer ) 702 if ( type() != GuiServer )
703 return; 703 return;
704 ShutdownImpl *sd = new ShutdownImpl( 0, 0, WDestructiveClose ); 704 ShutdownImpl *sd = new ShutdownImpl( 0, 0, WDestructiveClose );
705 connect( sd, SIGNAL(shutdown(ShutdownImpl::Type)), 705 connect( sd, SIGNAL(shutdown(ShutdownImpl::Type)),
706 this, SLOT(shutdown(ShutdownImpl::Type)) ); 706 this, SLOT(shutdown(ShutdownImpl::Type)) );
707 QPEApplication::showWidget( sd ); 707 QPEApplication::showWidget( sd );
708 sd->move(0,0);
709
710} 708}
711 709
712void ServerApplication::shutdown( ShutdownImpl::Type t ) 710void ServerApplication::shutdown( ShutdownImpl::Type t )
@@ -723,7 +721,7 @@ void ServerApplication::shutdown( ShutdownImpl::Type t )
723 721
724 if ( execl( "/sbin/shutdown", "shutdown", opt, "now", ( void* ) 0) < 0 ) 722 if ( execl( "/sbin/shutdown", "shutdown", opt, "now", ( void* ) 0) < 0 )
725 perror("shutdown"); 723 perror("shutdown");
726 // ::syslog ( LOG_ERR, "Erroring execing shutdown\n" ); 724// ::syslog ( LOG_ERR, "Erroring execing shutdown\n" );
727 725
728 break; 726 break;
729 case ShutdownImpl::RestartDesktop: 727 case ShutdownImpl::RestartDesktop:
@@ -757,13 +755,13 @@ void ServerApplication::restart()
757#ifdef ALL_APPLETS_ON_THIS_WORLD_ARE_FIXED 755#ifdef ALL_APPLETS_ON_THIS_WORLD_ARE_FIXED
758 /* same as above */ 756 /* same as above */
759 emit aboutToQuit(); 757 emit aboutToQuit();
760 prepareForTermination(TRUE); 758 prepareForTermination(TRUE);
761 doRestart = TRUE; 759 doRestart = TRUE;
762 quit(); 760 quit();
763#else 761#else
764 prepareForTermination( true ); 762 prepareForTermination( true );
765 for ( int fd = 3; fd < 100; fd++ ) 763 for ( int fd = 3; fd < 100; fd++ )
766 close( fd ); 764 close( fd );
767 execl( ( qpeDir() + "/bin/qpe" ).latin1(), "qpe", 0 ); 765 execl( ( qpeDir() + "/bin/qpe" ).latin1(), "qpe", 0 );
768 exit( 1 ); 766 exit( 1 );
769#endif 767#endif
@@ -788,35 +786,35 @@ void ServerApplication::checkMemory()
788 static bool existingMessage=FALSE; 786 static bool existingMessage=FALSE;
789 787
790 if(existingMessage) 788 if(existingMessage)
791 return; // don't show a second message while still on first 789 return; // don't show a second message while still on first
792 790
793 existingMessage = TRUE; 791 existingMessage = TRUE;
794 switch ( memstate ) { 792 switch ( memstate ) {
795 case MemUnknown: 793 case MemUnknown:
796 break; 794 break;
797 case MemLow: 795 case MemLow:
798 memstate = MemUnknown; 796 memstate = MemUnknown;
799 if ( !recoverMemory() ) { 797 if ( !recoverMemory() ) {
800 QMessageBox::warning( 0 , tr("Memory Status"), 798 QMessageBox::warning( 0 , tr("Memory Status"),
801 tr("Memory Low\nPlease save data.") ); 799 tr("Memory Low\nPlease save data.") );
802 ignoreNormal = FALSE; 800 ignoreNormal = FALSE;
803 } 801 }
804 break; 802 break;
805 case MemNormal: 803 case MemNormal:
806 memstate = MemUnknown; 804 memstate = MemUnknown;
807 if ( !ignoreNormal ) { 805 if ( !ignoreNormal ) {
808 ignoreNormal = TRUE; 806 ignoreNormal = TRUE;
809 QMessageBox::information ( 0 , tr("Memory Status"), 807 QMessageBox::information ( 0 , tr("Memory Status"),
810 "Memory OK" ); 808 "Memory OK" );
811 } 809 }
812 break; 810 break;
813 case MemVeryLow: 811 case MemVeryLow:
814 memstate = MemUnknown; 812 memstate = MemUnknown;
815 QMessageBox::critical( 0 , tr("Memory Status"), 813 QMessageBox::critical( 0 , tr("Memory Status"),
816 tr("Critical Memory Shortage\n" 814 tr("Critical Memory Shortage\n"
817 "Please end this application\n" 815 "Please end this application\n"
818 "immediately.") ); 816 "immediately.") );
819 recoverMemory(); 817 recoverMemory();
820 } 818 }
821 existingMessage = FALSE; 819 existingMessage = FALSE;
822#endif 820#endif
@@ -847,7 +845,7 @@ void ServerApplication::soundAlarm() {
847 845
848ServerApplication *ServerApplication::me ( ) 846ServerApplication *ServerApplication::me ( )
849{ 847{
850 return static_cast<ServerApplication*>( qApp ); 848 return static_cast<ServerApplication*>( qApp );
851} 849}
852 850
853bool ServerApplication::isStarting() 851bool ServerApplication::isStarting()