summaryrefslogtreecommitdiff
path: root/core/opie-login/loginwindowimpl.cpp
Unidiff
Diffstat (limited to 'core/opie-login/loginwindowimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/opie-login/loginwindowimpl.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp
index 3037ba3..e1b9360 100644
--- a/core/opie-login/loginwindowimpl.cpp
+++ b/core/opie-login/loginwindowimpl.cpp
@@ -1,250 +1,250 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This file is free software; you can 5 _;:,     .>    :=|. This file is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This file is distributed in the hope that 12    .i_,=:_.      -<s. This file is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
17..}^=.=       =       ; Public License for more details. 17..}^=.=       =       ; Public License for more details.
18++=   -.     .`     .: 18++=   -.     .`     .:
19 :     =  ...= . :.=- You should have received a copy of the GNU 19 :     =  ...= . :.=- You should have received a copy of the GNU
20 -.   .:....=;==+<; General Public License along with this file; 20 -.   .:....=;==+<; General Public License along with this file;
21  -_. . .   )=.  = see the file COPYING. If not, write to the 21  -_. . .   )=.  = see the file COPYING. If not, write to the
22    --        :-=` Free Software Foundation, Inc., 22    --        :-=` Free Software Foundation, Inc.,
23 59 Temple Place - Suite 330, 23 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA. 24 Boston, MA 02111-1307, USA.
25 25
26*/ 26*/
27#include <qpe/version.h> 27#include <qpe/version.h>
28#include <qpushbutton.h> 28#include <qpushbutton.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qlineedit.h> 30#include <qlineedit.h>
31#include <qtimer.h> 31#include <qtimer.h>
32#include <qcombobox.h> 32#include <qcombobox.h>
33#include <qlabel.h> 33#include <qlabel.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35#include <qmessagebox.h> 35#include <qmessagebox.h>
36#if QT_VERSION < 300 36#if QT_VERSION < 300
37#include <qgfx_qws.h> 37#include <qgfx_qws.h>
38#endif 38#endif
39#include <qwindowsystem_qws.h> 39#include <qwindowsystem_qws.h>
40 40
41#include <qpe/resource.h> 41#include <qpe/resource.h>
42#include <qpe/qcopenvelope_qws.h> 42#include <qpe/qcopenvelope_qws.h>
43#include <qpe/config.h> 43#include <qpe/config.h>
44 44
45#include <opie/odevice.h> 45#include <opie/odevice.h>
46 46
47#include <stdio.h> 47#include <stdio.h>
48#include <stdlib.h> 48#include <stdlib.h>
49 49
50#include "loginwindowimpl.h" 50#include "loginwindowimpl.h"
51#include "loginapplication.h" 51#include "loginapplication.h"
52#include "inputmethods.h" 52#include "inputmethods.h"
53 53
54using namespace Opie; 54using namespace Opie;
55 55
56 56
57LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) 57LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose )
58{ 58{
59 QPopupMenu *pop = new QPopupMenu ( this ); 59 QPopupMenu *pop = new QPopupMenu ( this );
60 pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); 60 pop-> insertItem ( tr( "Restart" ), this, SLOT( restart()));
61 pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); 61 pop-> insertItem ( tr( "Quit" ), this, SLOT( quit()));
62 m_menu-> setPopup ( pop ); 62 m_menu-> setPopup ( pop );
63 63
64 QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this ); 64 QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this );
65 connect ( channel, SIGNAL( received ( const QCString &, const QByteArray & )), this, SLOT( receive ( const QCString &, const QByteArray & ))); 65 connect ( channel, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( receive(const QCString&,const QByteArray&)));
66 66
67 QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); 67 QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 );
68 m_input = new InputMethods ( m_taskbar ); 68 m_input = new InputMethods ( m_taskbar );
69 connect ( m_input, SIGNAL( inputToggled ( bool )), this, SLOT( calcMaxWindowRect ( ))); 69 connect ( m_input, SIGNAL( inputToggled(bool)), this, SLOT( calcMaxWindowRect()));
70 lay-> addWidget ( m_input ); 70 lay-> addWidget ( m_input );
71 lay-> addStretch ( 10 ); 71 lay-> addStretch ( 10 );
72 72
73 setActiveWindow ( ); 73 setActiveWindow ( );
74 m_password-> setFocus ( ); 74 m_password-> setFocus ( );
75 75
76 m_user-> insertStringList ( lApp-> allUsers ( )); 76 m_user-> insertStringList ( lApp-> allUsers ( ));
77 77
78 //there is no point in displaying the IM for a zaurus 78 //there is no point in displaying the IM for a zaurus
79 if (ODevice::inst ( )-> series ( ) != Model_Zaurus){ 79 if (ODevice::inst ( )-> series ( ) != Model_Zaurus){
80 QTimer::singleShot ( 0, this, SLOT( showIM ( ))); 80 QTimer::singleShot ( 0, this, SLOT( showIM()));
81 } 81 }
82 82
83 QString opiedir = ::getenv ( "OPIEDIR" ); 83 QString opiedir = ::getenv ( "OPIEDIR" );
84 QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); 84 QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" );
85 85
86 if ( !bgpix. isNull ( )) { 86 if ( !bgpix. isNull ( )) {
87 setBackgroundPixmap ( bgpix ); 87 setBackgroundPixmap ( bgpix );
88 m_caption-> setBackgroundPixmap ( bgpix); 88 m_caption-> setBackgroundPixmap ( bgpix);
89 TextLabel1-> setBackgroundPixmap ( bgpix); 89 TextLabel1-> setBackgroundPixmap ( bgpix);
90 TextLabel2-> setBackgroundPixmap ( bgpix); 90 TextLabel2-> setBackgroundPixmap ( bgpix);
91 } 91 }
92 92
93 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 ( ))); 93 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 ( )));
94 94
95 Config cfg ( "opie-login" ); 95 Config cfg ( "opie-login" );
96 cfg. setGroup ( "General" ); 96 cfg. setGroup ( "General" );
97 QString last = cfg. readEntry ( "LastLogin" ); 97 QString last = cfg. readEntry ( "LastLogin" );
98 98
99 if ( !last. isEmpty ( )) 99 if ( !last. isEmpty ( ))
100 m_user-> setEditText ( last ); 100 m_user-> setEditText ( last );
101 101
102 calcMaxWindowRect ( ); 102 calcMaxWindowRect ( );
103} 103}
104 104
105LoginWindowImpl::~LoginWindowImpl ( ) 105LoginWindowImpl::~LoginWindowImpl ( )
106{ 106{
107} 107}
108 108
109 109
110void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data ) 110void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data )
111{ 111{
112 QDataStream stream ( data, IO_ReadOnly ); 112 QDataStream stream ( data, IO_ReadOnly );
113 113
114 if ( msg == "hideInputMethod()" ) 114 if ( msg == "hideInputMethod()" )
115 m_input-> hideInputMethod ( ); 115 m_input-> hideInputMethod ( );
116 else if ( msg == "showInputMethod()" ) 116 else if ( msg == "showInputMethod()" )
117 m_input-> showInputMethod ( ); 117 m_input-> showInputMethod ( );
118 else if ( msg == "reloadInputMethods()" ) 118 else if ( msg == "reloadInputMethods()" )
119 m_input-> loadInputMethods ( ); 119 m_input-> loadInputMethods ( );
120} 120}
121 121
122void LoginWindowImpl::calcMaxWindowRect ( ) 122void LoginWindowImpl::calcMaxWindowRect ( )
123{ 123{
124#ifdef Q_WS_QWS 124#ifdef Q_WS_QWS
125 QRect wr; 125 QRect wr;
126 int displayWidth = qApp-> desktop ( )-> width ( ); 126 int displayWidth = qApp-> desktop ( )-> width ( );
127 QRect ir = m_input-> inputRect ( ); 127 QRect ir = m_input-> inputRect ( );
128 if ( ir.isValid() ) 128 if ( ir.isValid() )
129 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); 129 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 );
130 else 130 else
131 wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 ); 131 wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 );
132 132
133#if QT_VERSION < 300 133#if QT_VERSION < 300
134 wr = qt_screen-> mapToDevice ( wr, QSize ( qt_screen-> width ( ), qt_screen-> height ( ))); 134 wr = qt_screen-> mapToDevice ( wr, QSize ( qt_screen-> width ( ), qt_screen-> height ( )));
135#endif 135#endif
136 136
137 QWSServer::setMaxWindowRect( wr ); 137 QWSServer::setMaxWindowRect( wr );
138#endif 138#endif
139} 139}
140 140
141 141
142void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) 142void LoginWindowImpl::keyPressEvent ( QKeyEvent *e )
143{ 143{
144 switch ( e-> key ( )) { 144 switch ( e-> key ( )) {
145 case HardKey_Suspend: suspend ( ); 145 case HardKey_Suspend: suspend ( );
146 break; 146 break;
147 case HardKey_Backlight: backlight ( ); 147 case HardKey_Backlight: backlight ( );
148 break; 148 break;
149 default: e-> ignore ( ); 149 default: e-> ignore ( );
150 break; 150 break;
151 } 151 }
152 LoginWindow::keyPressEvent ( e ); 152 LoginWindow::keyPressEvent ( e );
153} 153}
154 154
155 155
156void LoginWindowImpl::toggleEchoMode ( bool t ) 156void LoginWindowImpl::toggleEchoMode ( bool t )
157{ 157{
158 m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password ); 158 m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password );
159} 159}
160 160
161void LoginWindowImpl::showIM ( ) 161void LoginWindowImpl::showIM ( )
162{ 162{
163 m_input-> showInputMethod ( ); 163 m_input-> showInputMethod ( );
164} 164}
165 165
166void LoginWindowImpl::restart ( ) 166void LoginWindowImpl::restart ( )
167{ 167{
168 qApp-> quit ( ); 168 qApp-> quit ( );
169} 169}
170 170
171void LoginWindowImpl::quit ( ) 171void LoginWindowImpl::quit ( )
172{ 172{
173 lApp-> quitToConsole ( ); 173 lApp-> quitToConsole ( );
174} 174}
175 175
176void LoginWindowImpl::suspend ( ) 176void LoginWindowImpl::suspend ( )
177{ 177{
178 ODevice::inst ( )-> suspend ( ); 178 ODevice::inst ( )-> suspend ( );
179 179
180 QCopEnvelope e("QPE/System", "setBacklight(int)"); 180 QCopEnvelope e("QPE/System", "setBacklight(int)");
181 e << -3; // Force on 181 e << -3; // Force on
182} 182}
183 183
184void LoginWindowImpl::backlight ( ) 184void LoginWindowImpl::backlight ( )
185{ 185{
186 QCopEnvelope e("QPE/System", "setBacklight(int)"); 186 QCopEnvelope e("QPE/System", "setBacklight(int)");
187 e << -2; // toggle 187 e << -2; // toggle
188} 188}
189 189
190class WaitLogo : public QLabel { 190class WaitLogo : public QLabel {
191public: 191public:
192 WaitLogo ( ) : QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool ) 192 WaitLogo ( ) : QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool )
193 { 193 {
194 QImage img = Resource::loadImage ( "launcher/new_wait" ); 194 QImage img = Resource::loadImage ( "launcher/new_wait" );
195 QPixmap pix; 195 QPixmap pix;
196 pix. convertFromImage ( img ); 196 pix. convertFromImage ( img );
197 setPixmap ( pix ); 197 setPixmap ( pix );
198 setAlignment ( AlignCenter ); 198 setAlignment ( AlignCenter );
199 move ( 0, 0 ); 199 move ( 0, 0 );
200 resize ( qApp-> desktop ( )-> width ( ), qApp-> desktop ( )-> height ( )); 200 resize ( qApp-> desktop ( )-> width ( ), qApp-> desktop ( )-> height ( ));
201 201
202 m_visible = false; 202 m_visible = false;
203 show ( ); 203 show ( );
204 } 204 }
205 205
206 virtual void showEvent ( QShowEvent *e ) 206 virtual void showEvent ( QShowEvent *e )
207 { 207 {
208 QLabel::showEvent ( e ); 208 QLabel::showEvent ( e );
209 m_visible = true; 209 m_visible = true;
210 } 210 }
211 211
212 virtual void paintEvent ( QPaintEvent *e ) 212 virtual void paintEvent ( QPaintEvent *e )
213 { 213 {
214 QLabel::paintEvent ( e ); 214 QLabel::paintEvent ( e );
215 if ( m_visible ) 215 if ( m_visible )
216 qApp-> quit ( ); 216 qApp-> quit ( );
217 } 217 }
218 218
219private: 219private:
220 bool m_visible; 220 bool m_visible;
221}; 221};
222 222
223void LoginWindowImpl::login ( ) 223void LoginWindowImpl::login ( )
224{ 224{
225 const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); 225 const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( ));
226 const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); 226 const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( ));
227 227
228 if ( !user || !user [0] ) 228 if ( !user || !user [0] )
229 return; 229 return;
230 if ( !pass ) 230 if ( !pass )
231 pass = ""; 231 pass = "";
232 232
233 if ( lApp-> checkPassword ( user, pass )) { 233 if ( lApp-> checkPassword ( user, pass )) {
234 Config cfg ( "opie-login" ); 234 Config cfg ( "opie-login" );
235 cfg. setGroup ( "General" ); 235 cfg. setGroup ( "General" );
236 cfg. writeEntry ( "LastLogin", user ); 236 cfg. writeEntry ( "LastLogin", user );
237 cfg. write ( ); 237 cfg. write ( );
238 238
239 lApp-> setLoginAs ( user ); 239 lApp-> setLoginAs ( user );
240 240
241 // Draw a big wait icon, the image can be altered in later revisions 241 // Draw a big wait icon, the image can be altered in later revisions
242 m_input-> hideInputMethod ( ); 242 m_input-> hideInputMethod ( );
243 new WaitLogo ( ); 243 new WaitLogo ( );
244 // WaitLogo::showEvent() calls qApp-> quit() 244 // WaitLogo::showEvent() calls qApp-> quit()
245 } 245 }
246 else { 246 else {
247 QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." )); 247 QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." ));
248 m_password-> clear ( ); 248 m_password-> clear ( );
249 } 249 }
250} 250}