00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "loginform.h"
00021
00022 #include <player/lib/authentication.h>
00023
00024 #include <attica/provider.h>
00025 #include <Plasma/LineEdit>
00026 #include <Plasma/PushButton>
00027 #include <Plasma/Label>
00028 #include <Plasma/BusyWidget>
00029 #include <KLineEdit>
00030
00031 #include <QGraphicsLinearLayout>
00032 #include <QDebug>
00033
00034 LoginForm::LoginForm( QGraphicsItem* parent, Qt::WindowFlags wFlags )
00035 : Overlay( parent, wFlags )
00036 , m_usernameEdit( new Plasma::LineEdit( this ) )
00037 , m_passwordEdit( new Plasma::LineEdit( this ) )
00038 , m_loginButton( new Plasma::PushButton( this ) )
00039 , m_busyWidget( new Plasma::BusyWidget( this ) )
00040 , m_usernameLabel( new Plasma::Label( this ) )
00041 {
00042 m_usernameEdit->nativeWidget()->setClickMessage( i18n( "Username" ) );
00043 m_passwordEdit->nativeWidget()->setClickMessage( i18n( "Password" ) );
00044 m_passwordEdit->nativeWidget()->setPasswordMode( true );
00045 m_loginButton->setIcon( KIcon( "network-connect" ) );
00046 m_loginButton->setText( i18n( "Login" ) );
00047 m_loginButton->setEnabled( false );
00048
00049 m_busyWidget->hide();
00050 m_usernameLabel->setText( i18n( "Not Logged In" ) );
00051
00052 QGraphicsLinearLayout* layout1 = new QGraphicsLinearLayout( m_contentLayout );
00053 layout1->addItem( m_busyWidget );
00054 layout1->addItem( m_usernameLabel );
00055
00056 m_contentLayout->addItem( layout1 );
00057 m_contentLayout->addItem( m_usernameEdit );
00058 m_contentLayout->addItem( m_passwordEdit );
00059 m_contentLayout->addItem( m_loginButton );
00060
00061 connect( m_loginButton, SIGNAL( clicked() ), SLOT( doLogin() ) );
00062 connect( GluonPlayer::Authentication::instance(), SIGNAL( initialized() ), SLOT( initDone() ) );
00063 connect( GluonPlayer::Authentication::instance(), SIGNAL( initFailed() ), SLOT( initFailed() ) );
00064 connect( GluonPlayer::Authentication::instance(), SIGNAL( loggedIn() ), SLOT( loginDone() ) );
00065 connect( GluonPlayer::Authentication::instance(), SIGNAL( loginFailed() ), SLOT( loginFailed() ) );
00066
00067 initialize();
00068 }
00069
00070 void LoginForm::initialize()
00071 {
00072 GluonPlayer::Authentication::instance()->init();
00073 }
00074
00075 void LoginForm::initDone()
00076 {
00077 loadCredentials();
00078 m_loginButton->setEnabled( true );
00079 }
00080
00081 void LoginForm::initFailed()
00082 {
00083 qDebug() << "Initialization failed";
00084 }
00085
00086 void LoginForm::doLogin()
00087 {
00088 if( m_usernameEdit->text().isEmpty() || m_passwordEdit->text().isEmpty() )
00089 {
00090 return;
00091 }
00092
00093 m_loginButton->setEnabled( false );
00094 m_busyWidget->show();
00095 GluonPlayer::Authentication::instance()->login( m_usernameEdit->text(), m_passwordEdit->text() );
00096
00097 m_usernameLabel->setText( i18n( "Logging in" ) );
00098 }
00099
00100 void LoginForm::loginDone()
00101 {
00102 m_busyWidget->hide();
00103 m_usernameLabel->setText(
00104 i18nc( "Logged in as <user name>", "Logged in as %1", GluonPlayer::Authentication::instance()->username() ) );
00105 m_loginButton->setEnabled( true );
00106 }
00107
00108 void LoginForm::loginFailed()
00109 {
00110 m_busyWidget->hide();
00111 m_usernameLabel->setText( i18n( "Login Failed" ) );
00112 m_loginButton->setEnabled( true );
00113 }
00114
00115 void LoginForm::loadCredentials()
00116 {
00117 m_usernameEdit->setText( GluonPlayer::Authentication::instance()->username() );
00118 m_passwordEdit->setText( GluonPlayer::Authentication::instance()->password() );
00119 }
00120
00121 #include "loginform.moc"