-rw-r--r-- | core/launcher/main.cpp | 7 | ||||
-rw-r--r-- | core/opie-login/main.cpp | 7 |
2 files changed, 1 insertions, 13 deletions
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp index 734d072..5bbed59 100644 --- a/core/launcher/main.cpp +++ b/core/launcher/main.cpp @@ -113,137 +113,130 @@ static void initKeyboard() qwsSetKeyboardAutoRepeat( ard, arp ); QString layout = config.readEntry( "Layout", "us101" ); Server::setKeyboardLayout( layout ); } static bool firstUse() { bool needFirstUse = FALSE; if ( QWSServer::mouseHandler() && QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { if ( !QFile::exists( "/etc/pointercal" ) ) needFirstUse = TRUE; } { Config config( "qpe" ); config.setGroup( "Startup" ); needFirstUse |= config.readBoolEntry( "FirstUse", TRUE ); } if ( !needFirstUse ) return FALSE; FirstUse *fu = new FirstUse(); fu->exec(); bool rs = fu->restartNeeded(); delete fu; return rs; } int initApplication( int argc, char ** argv ) { cleanup(); initEnvironment(); #ifdef QWS QWSServer::setDesktopBackground( QImage() ); #endif ServerApplication a( argc, argv, QApplication::GuiServer ); initKeyboard(); if ( firstUse() ) { a.restart(); return 0; } -#ifndef Q_OS_MACX - ODevice::inst()->setSoftSuspend( true ); -#endif { QCopEnvelope e("QPE/System", "setBacklight(int)" ); e << -3; // Forced on } AlarmServer::initialize(); Server *s = new Server(); new SysFileMonitor(s); #ifdef QWS Network::createServer(s); #endif s->show(); #if 0 if ( QDate::currentDate().year() < 2005 ) { if ( QMessageBox::information ( 0, ServerApplication::tr( "Information" ), ServerApplication::tr( "<p>The system date doesn't seem to be valid.\n(%1)</p><p>Do you want to correct the clock ?</p>" ) .arg( TimeString::dateString( QDate::currentDate())), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { QCopEnvelope e ( "QPE/Application/systemtime", "setDocument(QString)" ); e << QString ( ); } } #endif create_pidfile(); odebug << "--> mainloop in" << oendl; int rv = a.exec(); odebug << "<-- mainloop out" << oendl; remove_pidfile(); odebug << "removing server object..." << oendl; delete s; -#ifndef Q_OS_MACX - ODevice::inst()->setSoftSuspend( false ); -#endif - odebug << "returning from qpe/initapplication..." << oendl; return rv; } static const char *pidfile_path = "/var/run/opie.pid"; void create_pidfile() { FILE *f; if (( f = ::fopen( pidfile_path, "w" ))) { ::fprintf( f, "%d", getpid ( )); ::fclose( f ); } else { odebug << "couldn't create pidfile: " << strerror( errno ) << oendl; } } void remove_pidfile() { ::unlink( pidfile_path ); } void handle_sigterm( int sig ) { qDebug( "D'oh! QPE Server process got SIGNAL %d. Trying to exit gracefully...", sig ); ::signal( SIGCHLD, SIG_IGN ); ::signal( SIGSEGV, SIG_IGN ); ::signal( SIGBUS, SIG_IGN ); ::signal( SIGILL, SIG_IGN ); ::signal( SIGTERM, SIG_IGN ); ::signal ( SIGINT, SIG_IGN ); if ( qApp ) qApp->quit(); } int main( int argc, char ** argv ) { ::signal( SIGCHLD, SIG_IGN ); ::signal( SIGSEGV, handle_sigterm ); ::signal( SIGBUS, handle_sigterm ); ::signal( SIGILL, handle_sigterm ); ::signal( SIGTERM, handle_sigterm ); ::signal ( SIGINT, handle_sigterm ); ::setsid(); ::setpgid( 0, 0 ); diff --git a/core/opie-login/main.cpp b/core/opie-login/main.cpp index 0699d0a..2de0180 100644 --- a/core/opie-login/main.cpp +++ b/core/opie-login/main.cpp @@ -147,98 +147,97 @@ int main ( int argc, char **argv ) case SIGTERM: case SIGINT : case SIGKILL: break; default : killedbysig = WTERMSIG( status ); break; } } if ( killedbysig ) { // qpe was killed by an uncaught signal qApp = 0; ::syslog ( LOG_ERR, "Opie was killed by a signal #%d", killedbysig ); QWSServer::setDesktopBackground ( QImage ( )); QApplication *app = new QApplication ( argc, argv, QApplication::GuiServer ); app-> setFont ( QFont ( "Helvetica", 10 )); app-> setStyle ( new QPEStyle ( )); // const char *sig = ::strsignal ( killedbysig ); const char *sig = ::sys_siglist[killedbysig]; QLabel *l = new QLabel ( 0, "sig", Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_Tool ); l-> setText ( LoginWindowImpl::tr( "Opie was terminated\nby an uncaught signal\n(%1)\n" ). arg ( sig )); l-> setAlignment ( Qt::AlignCenter ); l-> move ( 0, 0 ); l-> resize ( app-> desktop ( )-> width ( ), app-> desktop ( )-> height ( )); l-> show ( ); QTimer::singleShot ( 3000, app, SLOT( quit())); app-> exec ( ); delete app; qApp = 0; } } else { if ( !autolog ) { QString confFile=QPEApplication::qpeDir() + "etc/opie-login.conf"; Config cfg ( confFile, Config::File ); cfg. setGroup ( "General" ); QString user = cfg. readEntry ( "AutoLogin" ); if ( !user. isEmpty ( )) autolog = ::strdup ( user. latin1 ( )); } if ( autolog && !userExited ) { QWSServer::setDesktopBackground( QImage() ); - ODevice::inst ( )-> setDisplayStatus ( true ); - ODevice::inst ( )-> setSoftSuspend ( false ); + ODevice::inst()->setDisplayStatus( true ); LoginApplication *app = new LoginApplication ( argc, argv, ppid ); LoginApplication::setLoginAs ( autolog ); if ( LoginApplication::changeIdentity ( )) ::exit ( LoginApplication::login ( )); else ::exit ( 0 ); } else { ::exit ( login_main ( argc, argv, ppid )); } } } return 0; } void sigterm ( int /*sig*/ ) { ::exit ( 0 ); } void exit_closelog ( ) { ::closelog ( ); } class LoginScreenSaver : public QWSScreenSaver { public: LoginScreenSaver ( ) { m_lcd_status = true; m_backlight_bright = -1; m_backlight_forcedoff = false; // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) ODevice::inst ( )-> setDisplayStatus ( true ); } void restore() { if ( !m_lcd_status ) // We must have turned it off ODevice::inst ( ) -> setDisplayStatus ( true ); setBacklight ( -3 ); @@ -290,94 +289,90 @@ public: return m_backlight_bright; } void setBacklight ( int bright ) { if ( bright == -3 ) { // Forced on m_backlight_forcedoff = false; bright = -1; } if ( m_backlight_forcedoff && bright != -2 ) return ; if ( bright == -2 ) { // Toggle between off and on bright = m_backlight_bright ? 0 : -1; m_backlight_forcedoff = !bright; } m_backlight_bright = bright; bright = backlight ( ); ODevice::inst ( ) -> setDisplayBrightness ( bright ); m_backlight_bright = bright; } private: bool m_lcd_status; int m_backlight_bright; bool m_backlight_forcedoff; }; namespace Opie { extern int force_appearance; } // HACK to get around the force-style setting int login_main ( int argc, char **argv, pid_t ppid ) { QWSServer::setDesktopBackground( QImage() ); LoginApplication *app = new LoginApplication ( argc, argv, ppid ); Opie::force_appearance = 0; app-> setFont ( QFont ( "Helvetica", 10 )); app-> setStyle ( new QPEStyle ( )); - ODevice::inst ( )-> setSoftSuspend ( true ); - if ( QWSServer::mouseHandler() && QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { if ( !QFile::exists ( "/etc/pointercal" )) { // Make sure calibration widget starts on top. Calibrate *cal = new Calibrate; cal-> exec ( ); delete cal; } } LoginScreenSaver *saver = new LoginScreenSaver; saver-> setIntervals ( ); QWSServer::setScreenSaver ( saver ); saver-> restore ( ); LoginWindowImpl *lw = new LoginWindowImpl ( ); app-> setMainWidget ( lw ); lw-> setGeometry ( 0, 0, app-> desktop ( )-> width ( ), app-> desktop ( )-> height ( )); lw-> show ( ); int rc = app-> exec ( ); - ODevice::inst ( )-> setSoftSuspend ( false ); - if ( app-> loginAs ( )) { if ( app-> changeIdentity ( )) { app-> login ( ); // if login succeeds, it never comes back QMessageBox::critical ( 0, LoginWindowImpl::tr( "Failure" ), LoginWindowImpl::tr( "Could not start Opie." )); rc = 1; } else { QMessageBox::critical ( 0, LoginWindowImpl::tr( "Failure" ), LoginWindowImpl::tr( "Could not switch to new user identity" )); rc = 2; } } return rc; } |