-rw-r--r-- | core/opie-login/loginwindow.ui | 6 | ||||
-rw-r--r-- | core/opie-login/loginwindowimpl.cpp | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/core/opie-login/loginwindow.ui b/core/opie-login/loginwindow.ui index edd0819..5a35c8d 100644 --- a/core/opie-login/loginwindow.ui +++ b/core/opie-login/loginwindow.ui @@ -404,8 +404,14 @@ <signal>clicked()</signal> <receiver>LoginWindow</receiver> <slot>login()</slot> </connection> + <connection> + <sender>m_user</sender> + <signal>activated(int)</signal> + <receiver>m_password</receiver> + <slot>setFocus()</slot> + </connection> <slot access="public">login()</slot> <slot access="public">suspend()</slot> <slot access="public">toggleEchoMode(bool)</slot> </connections> diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp index 63baaa6..c59338f 100644 --- a/core/opie-login/loginwindowimpl.cpp +++ b/core/opie-login/loginwindowimpl.cpp @@ -8,9 +8,11 @@ #include <qpixmap.h> #include <qlabel.h> #include <qpopupmenu.h> #include <qmessagebox.h> +#include <qimage.h> +#include <qpe/resource.h> #include <qpe/qcopenvelope_qws.h> #include <opie/odevice.h> @@ -87,8 +89,9 @@ void LoginWindowImpl::toggleEchoMode ( bool t ) { m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password ); } + QStringList LoginWindowImpl::getAllUsers ( ) { struct passwd *pwd; QStringList sl; @@ -299,8 +302,21 @@ void LoginWindowImpl::login ( ) #endif if ( ok ) { if ( changeIdentity ( user )) { + // Draw a big wait icon, the image can be altered in later revisions + QWidget *d = QApplication::desktop ( ); + m_input-> hideInputMethod ( ); + + QImage img = Resource::loadImage( "launcher/new_wait" ); + QPixmap pix; + pix. convertFromImage ( img ); + QLabel *w = new QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool ); + w-> setPixmap ( pix ); + w-> setAlignment ( AlignCenter ); + w-> showMaximized ( ); + qApp-> processEvents ( ); + char *opie = ::getenv ( "OPIEDIR" ); char *arg = new char [::strlen ( opie ) + 8 + 1]; ::strcpy ( arg, opie ); @@ -308,8 +324,11 @@ void LoginWindowImpl::login ( ) // start qpe via a login shell ::execl ( "/bin/sh", "-sh", "-c", arg, 0 ); + w-> hide ( ); + delete w; + QMessageBox::critical ( this, tr( "Failure" ), tr( "Could not start OPIE\n(%1)." ). arg ( arg )); delete [] arg; restart ( ); |