summaryrefslogtreecommitdiff
path: root/core/opie-login
authorchicken <chicken>2004-03-01 17:07:58 (UTC)
committer chicken <chicken>2004-03-01 17:07:58 (UTC)
commit796de538b7b7bc7c3e2af3e8dd081000c21569ac (patch) (side-by-side diff)
treefbe33813de3cd593baa44bbf6d6340709b836490 /core/opie-login
parent8de0eea414192d758746a5f3950b9765e9709bf9 (diff)
downloadopie-796de538b7b7bc7c3e2af3e8dd081000c21569ac.zip
opie-796de538b7b7bc7c3e2af3e8dd081000c21569ac.tar.gz
opie-796de538b7b7bc7c3e2af3e8dd081000c21569ac.tar.bz2
fix includes
Diffstat (limited to 'core/opie-login') (more/less context) (ignore whitespace changes)
-rw-r--r--core/opie-login/loginwindowimpl.cpp4
-rw-r--r--core/opie-login/main.cpp4
-rw-r--r--core/opie-login/opie-login.pro2
3 files changed, 1 insertions, 9 deletions
diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp
index 330fac5..3037ba3 100644
--- a/core/opie-login/loginwindowimpl.cpp
+++ b/core/opie-login/loginwindowimpl.cpp
@@ -1,135 +1,131 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
           .>+-=
 _;:,     .>    :=|. This file is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This file is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
..}^=.=       =       ; Public License for more details.
++=   -.     .`     .:
 :     =  ...= . :.=- You should have received a copy of the GNU
 -.   .:....=;==+<; General Public License along with this file;
  -_. . .   )=.  = see the file COPYING. If not, write to the
    --        :-=` Free Software Foundation, Inc.,
59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <qpe/version.h>
-#include <qapplication.h>
#include <qpushbutton.h>
#include <qlayout.h>
-#include <qframe.h>
#include <qlineedit.h>
#include <qtimer.h>
#include <qcombobox.h>
-#include <qpixmap.h>
#include <qlabel.h>
#include <qpopupmenu.h>
#include <qmessagebox.h>
-#include <qimage.h>
#if QT_VERSION < 300
#include <qgfx_qws.h>
#endif
#include <qwindowsystem_qws.h>
#include <qpe/resource.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/config.h>
#include <opie/odevice.h>
#include <stdio.h>
#include <stdlib.h>
#include "loginwindowimpl.h"
#include "loginapplication.h"
#include "inputmethods.h"
using namespace Opie;
LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose )
{
QPopupMenu *pop = new QPopupMenu ( this );
pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( )));
pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( )));
m_menu-> setPopup ( pop );
QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this );
connect ( channel, SIGNAL( received ( const QCString &, const QByteArray & )), this, SLOT( receive ( const QCString &, const QByteArray & )));
QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 );
m_input = new InputMethods ( m_taskbar );
connect ( m_input, SIGNAL( inputToggled ( bool )), this, SLOT( calcMaxWindowRect ( )));
lay-> addWidget ( m_input );
lay-> addStretch ( 10 );
setActiveWindow ( );
m_password-> setFocus ( );
m_user-> insertStringList ( lApp-> allUsers ( ));
//there is no point in displaying the IM for a zaurus
if (ODevice::inst ( )-> series ( ) != Model_Zaurus){
QTimer::singleShot ( 0, this, SLOT( showIM ( )));
}
QString opiedir = ::getenv ( "OPIEDIR" );
QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" );
if ( !bgpix. isNull ( )) {
setBackgroundPixmap ( bgpix );
m_caption-> setBackgroundPixmap ( bgpix);
TextLabel1-> setBackgroundPixmap ( bgpix);
TextLabel2-> setBackgroundPixmap ( bgpix);
}
m_caption-> setText ( tr("<center>Welcome to OPIE %1</center><center>& %2 %3</center>"). arg(QPE_VERSION). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( )));
Config cfg ( "opie-login" );
cfg. setGroup ( "General" );
QString last = cfg. readEntry ( "LastLogin" );
if ( !last. isEmpty ( ))
m_user-> setEditText ( last );
calcMaxWindowRect ( );
}
LoginWindowImpl::~LoginWindowImpl ( )
{
}
void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data )
{
QDataStream stream ( data, IO_ReadOnly );
if ( msg == "hideInputMethod()" )
m_input-> hideInputMethod ( );
else if ( msg == "showInputMethod()" )
m_input-> showInputMethod ( );
else if ( msg == "reloadInputMethods()" )
m_input-> loadInputMethods ( );
}
void LoginWindowImpl::calcMaxWindowRect ( )
{
#ifdef Q_WS_QWS
QRect wr;
int displayWidth = qApp-> desktop ( )-> width ( );
QRect ir = m_input-> inputRect ( );
if ( ir.isValid() )
wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 );
else
wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 );
diff --git a/core/opie-login/main.cpp b/core/opie-login/main.cpp
index 7d2ed63..bf98735 100644
--- a/core/opie-login/main.cpp
+++ b/core/opie-login/main.cpp
@@ -1,153 +1,149 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
           .>+-=
 _;:,     .>    :=|. This file is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This file is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
..}^=.=       =       ; Public License for more details.
++=   -.     .`     .:
 :     =  ...= . :.=- You should have received a copy of the GNU
 -.   .:....=;==+<; General Public License along with this file;
  -_. . .   )=.  = see the file COPYING. If not, write to the
    --        :-=` Free Software Foundation, Inc.,
59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#define _GNU_SOURCE
#include <sys/types.h>
#include <time.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <syslog.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <getopt.h>
#include <string.h>
-#include <qpe/qpeapplication.h>
-#include <qpe/qcopenvelope_qws.h>
#include <qpe/qpestyle.h>
#include <qpe/power.h>
#include <qpe/config.h>
#include <opie/odevice.h>
#include <qwindowsystem_qws.h>
-#include <qwsmouse_qws.h>
#include <qmessagebox.h>
#include <qlabel.h>
#include <qtimer.h>
#include <qfile.h>
-#include <qtextstream.h>
#include "loginapplication.h"
#include "loginwindowimpl.h"
#include "calibrate.h"
using namespace Opie;
int login_main ( int argc, char **argv, pid_t ppid );
void sigterm ( int sig );
void sigint ( int sig );
void exit_closelog ( );
static struct option long_options [] = {
{ "autologin", 1, 0, 'a' },
{ 0, 0, 0, 0 }
};
int main ( int argc, char **argv )
{
int userExited = 0;
pid_t ppid = ::getpid ( );
if ( ::geteuid ( ) != 0 ) {
::fprintf ( stderr, "%s can only be executed by root. (or chmod +s)", argv [0] );
return 1;
}
if ( ::getuid ( ) != 0 ) // qt doesn't really like SUID and
::setuid ( 0 ); // messes up things like config files
char *autolog = 0;
int c;
while (( c = ::getopt_long ( argc, argv, "a:", long_options, 0 )) != -1 ) {
switch ( c ) {
case 'a':
autolog = optarg;
break;
default:
::fprintf ( stderr, "Usage: %s [-a|--autologin=<user>]\n", argv [0] );
return 2;
}
}
// struct rlimit rl;
// ::getrlimit ( RLIMIT_NOFILE, &rl );
// for ( unsigned int i = 0; i < rl. rlim_cur; i++ )
// ::close ( i );
::setpgid ( 0, 0 );
::setsid ( );
::signal ( SIGTERM, sigterm );
::signal ( SIGINT, sigterm );
::openlog ( "opie-login", LOG_CONS, LOG_AUTHPRIV );
::atexit ( exit_closelog );
while ( true ) {
pid_t child = ::fork ( );
if ( child < 0 ) {
::syslog ( LOG_ERR, "Could not fork GUI process\n" );
break;
}
else if ( child > 0 ) {
int status = 0;
time_t started = ::time ( 0 );
while ( ::waitpid ( child, &status, 0 ) < 0 ) { }
LoginApplication::logout ( );
if (( ::time ( 0 ) - started ) < 3 ) {
if ( autolog ) {
::syslog ( LOG_ERR, "Respawning too fast -- disabling auto-login\n" );
autolog = 0;
}
else {
::syslog ( LOG_ERR, "Respawning too fast -- going down\n" );
break;
}
}
int killedbysig = 0;
userExited=0;
if (WIFEXITED(status)!=0 ) {
if (WEXITSTATUS(status)==137) {
userExited=1;
}
}
if ( WIFSIGNALED( status )) {
switch ( WTERMSIG( status )) {
case SIGTERM:
case SIGINT :
case SIGKILL:
diff --git a/core/opie-login/opie-login.pro b/core/opie-login/opie-login.pro
index f9dbe2b..0fdd8e1 100644
--- a/core/opie-login/opie-login.pro
+++ b/core/opie-login/opie-login.pro
@@ -1,28 +1,28 @@
TEMPLATE = app
-CONFIG = qt warn_on debug usepam
+CONFIG = qt warn_on debug
HEADERS = loginwindowimpl.h \
loginapplication.h \
../launcher/inputmethods.h \
../apps/calibrate/calibrate.h
SOURCES = loginwindowimpl.cpp \
loginapplication.cpp \
../launcher/inputmethods.cpp \
../apps/calibrate/calibrate.cpp \
main.cpp
INTERFACES = loginwindow.ui
INCLUDEPATH += $(OPIEDIR)/include ../launcher ../apps/calibrate
DEPENDPATH += $(OPIEDIR)/include ../launcher ../apps/calibrate
LIBS += -lqpe -lopie
usepam:LIBS += -lpam
usepam:DEFINES += USEPAM
DESTDIR = $(OPIEDIR)/bin
TARGET = opie-login
include ( $(OPIEDIR)/include.pro )