summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/opie-login/loginwindow.ui6
-rw-r--r--core/opie-login/loginwindowimpl.cpp19
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 ( );