-rw-r--r-- | core/opie-login/loginwindow.ui | 1 | ||||
-rw-r--r-- | core/opie-login/loginwindowimpl.cpp | 43 | ||||
-rw-r--r-- | core/opie-login/loginwindowimpl.h | 2 |
3 files changed, 45 insertions, 1 deletions
diff --git a/core/opie-login/loginwindow.ui b/core/opie-login/loginwindow.ui index 5a35c8d..245e942 100644 --- a/core/opie-login/loginwindow.ui +++ b/core/opie-login/loginwindow.ui | |||
@@ -1,205 +1,204 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>LoginWindow</class> | 2 | <class>LoginWindow</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QWidget</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>LoginWindow</cstring> | 7 | <cstring>LoginWindow</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>460</width> | 14 | <width>460</width> |
15 | <height>341</height> | 15 | <height>341</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>Login</string> | 20 | <string>Login</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <property> | 25 | <property> |
26 | <name>layoutSpacing</name> | 26 | <name>layoutSpacing</name> |
27 | </property> | 27 | </property> |
28 | <vbox> | 28 | <vbox> |
29 | <property stdset="1"> | 29 | <property stdset="1"> |
30 | <name>margin</name> | 30 | <name>margin</name> |
31 | <number>0</number> | 31 | <number>0</number> |
32 | </property> | 32 | </property> |
33 | <property stdset="1"> | 33 | <property stdset="1"> |
34 | <name>spacing</name> | 34 | <name>spacing</name> |
35 | <number>0</number> | 35 | <number>0</number> |
36 | </property> | 36 | </property> |
37 | <widget> | 37 | <widget> |
38 | <class>QLayoutWidget</class> | 38 | <class>QLayoutWidget</class> |
39 | <property stdset="1"> | 39 | <property stdset="1"> |
40 | <name>name</name> | 40 | <name>name</name> |
41 | <cstring>Layout7</cstring> | 41 | <cstring>Layout7</cstring> |
42 | </property> | 42 | </property> |
43 | <property> | 43 | <property> |
44 | <name>layoutMargin</name> | 44 | <name>layoutMargin</name> |
45 | </property> | 45 | </property> |
46 | <property> | 46 | <property> |
47 | <name>layoutSpacing</name> | 47 | <name>layoutSpacing</name> |
48 | </property> | 48 | </property> |
49 | <vbox> | 49 | <vbox> |
50 | <property stdset="1"> | 50 | <property stdset="1"> |
51 | <name>margin</name> | 51 | <name>margin</name> |
52 | <number>4</number> | 52 | <number>4</number> |
53 | </property> | 53 | </property> |
54 | <property stdset="1"> | 54 | <property stdset="1"> |
55 | <name>spacing</name> | 55 | <name>spacing</name> |
56 | <number>4</number> | 56 | <number>4</number> |
57 | </property> | 57 | </property> |
58 | <widget> | 58 | <widget> |
59 | <class>QLabel</class> | 59 | <class>QLabel</class> |
60 | <property stdset="1"> | 60 | <property stdset="1"> |
61 | <name>name</name> | 61 | <name>name</name> |
62 | <cstring>m_caption</cstring> | 62 | <cstring>m_caption</cstring> |
63 | </property> | 63 | </property> |
64 | <property stdset="1"> | 64 | <property stdset="1"> |
65 | <name>sizePolicy</name> | 65 | <name>sizePolicy</name> |
66 | <sizepolicy> | 66 | <sizepolicy> |
67 | <hsizetype>5</hsizetype> | 67 | <hsizetype>5</hsizetype> |
68 | <vsizetype>5</vsizetype> | 68 | <vsizetype>5</vsizetype> |
69 | </sizepolicy> | 69 | </sizepolicy> |
70 | </property> | 70 | </property> |
71 | <property stdset="1"> | 71 | <property stdset="1"> |
72 | <name>font</name> | 72 | <name>font</name> |
73 | <font> | 73 | <font> |
74 | <family>helvetica</family> | 74 | <family>helvetica</family> |
75 | <pointsize>18</pointsize> | 75 | <pointsize>18</pointsize> |
76 | <bold>1</bold> | 76 | <bold>1</bold> |
77 | <underline>1</underline> | ||
78 | </font> | 77 | </font> |
79 | </property> | 78 | </property> |
80 | <property stdset="1"> | 79 | <property stdset="1"> |
81 | <name>autoMask</name> | 80 | <name>autoMask</name> |
82 | <bool>true</bool> | 81 | <bool>true</bool> |
83 | </property> | 82 | </property> |
84 | <property stdset="1"> | 83 | <property stdset="1"> |
85 | <name>backgroundOrigin</name> | 84 | <name>backgroundOrigin</name> |
86 | <enum>ParentOrigin</enum> | 85 | <enum>ParentOrigin</enum> |
87 | </property> | 86 | </property> |
88 | <property stdset="1"> | 87 | <property stdset="1"> |
89 | <name>margin</name> | 88 | <name>margin</name> |
90 | <number>1</number> | 89 | <number>1</number> |
91 | </property> | 90 | </property> |
92 | <property stdset="1"> | 91 | <property stdset="1"> |
93 | <name>text</name> | 92 | <name>text</name> |
94 | <string><center>Welcome to OPIE</center></string> | 93 | <string><center>Welcome to OPIE</center></string> |
95 | </property> | 94 | </property> |
96 | </widget> | 95 | </widget> |
97 | <widget> | 96 | <widget> |
98 | <class>QLayoutWidget</class> | 97 | <class>QLayoutWidget</class> |
99 | <property stdset="1"> | 98 | <property stdset="1"> |
100 | <name>name</name> | 99 | <name>name</name> |
101 | <cstring>Layout6</cstring> | 100 | <cstring>Layout6</cstring> |
102 | </property> | 101 | </property> |
103 | <property> | 102 | <property> |
104 | <name>layoutSpacing</name> | 103 | <name>layoutSpacing</name> |
105 | </property> | 104 | </property> |
106 | <grid> | 105 | <grid> |
107 | <property stdset="1"> | 106 | <property stdset="1"> |
108 | <name>margin</name> | 107 | <name>margin</name> |
109 | <number>0</number> | 108 | <number>0</number> |
110 | </property> | 109 | </property> |
111 | <property stdset="1"> | 110 | <property stdset="1"> |
112 | <name>spacing</name> | 111 | <name>spacing</name> |
113 | <number>4</number> | 112 | <number>4</number> |
114 | </property> | 113 | </property> |
115 | <widget row="0" column="1" > | 114 | <widget row="0" column="1" > |
116 | <class>QComboBox</class> | 115 | <class>QComboBox</class> |
117 | <property stdset="1"> | 116 | <property stdset="1"> |
118 | <name>name</name> | 117 | <name>name</name> |
119 | <cstring>m_user</cstring> | 118 | <cstring>m_user</cstring> |
120 | </property> | 119 | </property> |
121 | <property stdset="1"> | 120 | <property stdset="1"> |
122 | <name>autoMask</name> | 121 | <name>autoMask</name> |
123 | <bool>true</bool> | 122 | <bool>true</bool> |
124 | </property> | 123 | </property> |
125 | <property stdset="1"> | 124 | <property stdset="1"> |
126 | <name>editable</name> | 125 | <name>editable</name> |
127 | <bool>true</bool> | 126 | <bool>true</bool> |
128 | </property> | 127 | </property> |
129 | <property stdset="1"> | 128 | <property stdset="1"> |
130 | <name>autoCompletion</name> | 129 | <name>autoCompletion</name> |
131 | <bool>true</bool> | 130 | <bool>true</bool> |
132 | </property> | 131 | </property> |
133 | </widget> | 132 | </widget> |
134 | <widget row="0" column="0" > | 133 | <widget row="0" column="0" > |
135 | <class>QLabel</class> | 134 | <class>QLabel</class> |
136 | <property stdset="1"> | 135 | <property stdset="1"> |
137 | <name>name</name> | 136 | <name>name</name> |
138 | <cstring>TextLabel1</cstring> | 137 | <cstring>TextLabel1</cstring> |
139 | </property> | 138 | </property> |
140 | <property stdset="1"> | 139 | <property stdset="1"> |
141 | <name>autoMask</name> | 140 | <name>autoMask</name> |
142 | <bool>true</bool> | 141 | <bool>true</bool> |
143 | </property> | 142 | </property> |
144 | <property stdset="1"> | 143 | <property stdset="1"> |
145 | <name>backgroundOrigin</name> | 144 | <name>backgroundOrigin</name> |
146 | <enum>ParentOrigin</enum> | 145 | <enum>ParentOrigin</enum> |
147 | </property> | 146 | </property> |
148 | <property stdset="1"> | 147 | <property stdset="1"> |
149 | <name>text</name> | 148 | <name>text</name> |
150 | <string>User</string> | 149 | <string>User</string> |
151 | </property> | 150 | </property> |
152 | </widget> | 151 | </widget> |
153 | <widget row="1" column="1" > | 152 | <widget row="1" column="1" > |
154 | <class>QLayoutWidget</class> | 153 | <class>QLayoutWidget</class> |
155 | <property stdset="1"> | 154 | <property stdset="1"> |
156 | <name>name</name> | 155 | <name>name</name> |
157 | <cstring>Layout5</cstring> | 156 | <cstring>Layout5</cstring> |
158 | </property> | 157 | </property> |
159 | <property> | 158 | <property> |
160 | <name>layoutSpacing</name> | 159 | <name>layoutSpacing</name> |
161 | </property> | 160 | </property> |
162 | <hbox> | 161 | <hbox> |
163 | <property stdset="1"> | 162 | <property stdset="1"> |
164 | <name>margin</name> | 163 | <name>margin</name> |
165 | <number>0</number> | 164 | <number>0</number> |
166 | </property> | 165 | </property> |
167 | <property stdset="1"> | 166 | <property stdset="1"> |
168 | <name>spacing</name> | 167 | <name>spacing</name> |
169 | <number>4</number> | 168 | <number>4</number> |
170 | </property> | 169 | </property> |
171 | <widget> | 170 | <widget> |
172 | <class>QLineEdit</class> | 171 | <class>QLineEdit</class> |
173 | <property stdset="1"> | 172 | <property stdset="1"> |
174 | <name>name</name> | 173 | <name>name</name> |
175 | <cstring>m_password</cstring> | 174 | <cstring>m_password</cstring> |
176 | </property> | 175 | </property> |
177 | <property stdset="1"> | 176 | <property stdset="1"> |
178 | <name>autoMask</name> | 177 | <name>autoMask</name> |
179 | <bool>true</bool> | 178 | <bool>true</bool> |
180 | </property> | 179 | </property> |
181 | <property stdset="1"> | 180 | <property stdset="1"> |
182 | <name>echoMode</name> | 181 | <name>echoMode</name> |
183 | <enum>Password</enum> | 182 | <enum>Password</enum> |
184 | </property> | 183 | </property> |
185 | </widget> | 184 | </widget> |
186 | <widget> | 185 | <widget> |
187 | <class>QToolButton</class> | 186 | <class>QToolButton</class> |
188 | <property stdset="1"> | 187 | <property stdset="1"> |
189 | <name>name</name> | 188 | <name>name</name> |
190 | <cstring>ToolButton3</cstring> | 189 | <cstring>ToolButton3</cstring> |
191 | </property> | 190 | </property> |
192 | <property stdset="1"> | 191 | <property stdset="1"> |
193 | <name>text</name> | 192 | <name>text</name> |
194 | <string></string> | 193 | <string></string> |
195 | </property> | 194 | </property> |
196 | <property stdset="1"> | 195 | <property stdset="1"> |
197 | <name>pixmap</name> | 196 | <name>pixmap</name> |
198 | <pixmap>image0</pixmap> | 197 | <pixmap>image0</pixmap> |
199 | </property> | 198 | </property> |
200 | <property stdset="1"> | 199 | <property stdset="1"> |
201 | <name>toggleButton</name> | 200 | <name>toggleButton</name> |
202 | <bool>true</bool> | 201 | <bool>true</bool> |
203 | </property> | 202 | </property> |
204 | <property stdset="1"> | 203 | <property stdset="1"> |
205 | <name>toggleButton</name> | 204 | <name>toggleButton</name> |
diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp index fe2906a..577cb41 100644 --- a/core/opie-login/loginwindowimpl.cpp +++ b/core/opie-login/loginwindowimpl.cpp | |||
@@ -1,204 +1,247 @@ | |||
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 | 27 | ||
28 | #include <qapplication.h> | 28 | #include <qapplication.h> |
29 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qframe.h> | 31 | #include <qframe.h> |
32 | #include <qlineedit.h> | 32 | #include <qlineedit.h> |
33 | #include <qtimer.h> | 33 | #include <qtimer.h> |
34 | #include <qcombobox.h> | 34 | #include <qcombobox.h> |
35 | #include <qpixmap.h> | 35 | #include <qpixmap.h> |
36 | #include <qlabel.h> | 36 | #include <qlabel.h> |
37 | #include <qpopupmenu.h> | 37 | #include <qpopupmenu.h> |
38 | #include <qmessagebox.h> | 38 | #include <qmessagebox.h> |
39 | #include <qimage.h> | 39 | #include <qimage.h> |
40 | #if QT_VERSION < 300 | ||
41 | #include <qgfx_qws.h> | ||
42 | #endif | ||
43 | #include <qwindowsystem_qws.h> | ||
40 | 44 | ||
41 | #include <qpe/resource.h> | 45 | #include <qpe/resource.h> |
42 | #include <qpe/qcopenvelope_qws.h> | 46 | #include <qpe/qcopenvelope_qws.h> |
43 | #include <qpe/config.h> | 47 | #include <qpe/config.h> |
44 | 48 | ||
45 | #include <opie/odevice.h> | 49 | #include <opie/odevice.h> |
46 | 50 | ||
47 | #include <stdio.h> | 51 | #include <stdio.h> |
48 | #include <stdlib.h> | 52 | #include <stdlib.h> |
49 | 53 | ||
50 | #include "loginwindowimpl.h" | 54 | #include "loginwindowimpl.h" |
51 | #include "loginapplication.h" | 55 | #include "loginapplication.h" |
52 | #include "inputmethods.h" | 56 | #include "inputmethods.h" |
53 | 57 | ||
54 | using namespace Opie; | 58 | using namespace Opie; |
55 | 59 | ||
56 | 60 | ||
57 | LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) | 61 | LoginWindowImpl::LoginWindowImpl ( ) : LoginWindow ( 0, "LOGIN-WINDOW", WStyle_Customize | WStyle_NoBorder | WDestructiveClose ) |
58 | { | 62 | { |
59 | QPopupMenu *pop = new QPopupMenu ( this ); | 63 | QPopupMenu *pop = new QPopupMenu ( this ); |
60 | pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); | 64 | pop-> insertItem ( tr( "Restart" ), this, SLOT( restart ( ))); |
61 | pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); | 65 | pop-> insertItem ( tr( "Quit" ), this, SLOT( quit ( ))); |
62 | m_menu-> setPopup ( pop ); | 66 | m_menu-> setPopup ( pop ); |
63 | 67 | ||
68 | QCopChannel *channel = new QCopChannel ( "QPE/TaskBar", this ); | ||
69 | connect ( channel, SIGNAL( received ( const QCString &, const QByteArray & )), this, SLOT( receive ( const QCString &, const QByteArray & ))); | ||
70 | |||
64 | QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); | 71 | QHBoxLayout *lay = new QHBoxLayout ( m_taskbar, 4, 4 ); |
65 | m_input = new InputMethods ( m_taskbar ); | 72 | m_input = new InputMethods ( m_taskbar ); |
73 | connect ( m_input, SIGNAL( inputToggled ( bool )), this, SLOT( calcMaxWindowRect ( ))); | ||
66 | lay-> addWidget ( m_input ); | 74 | lay-> addWidget ( m_input ); |
67 | lay-> addStretch ( 10 ); | 75 | lay-> addStretch ( 10 ); |
68 | 76 | ||
69 | setActiveWindow ( ); | 77 | setActiveWindow ( ); |
70 | m_password-> setFocus ( ); | 78 | m_password-> setFocus ( ); |
71 | 79 | ||
72 | m_user-> insertStringList ( lApp-> allUsers ( )); | 80 | m_user-> insertStringList ( lApp-> allUsers ( )); |
73 | 81 | ||
74 | QTimer::singleShot ( 0, this, SLOT( showIM ( ))); | 82 | QTimer::singleShot ( 0, this, SLOT( showIM ( ))); |
75 | 83 | ||
76 | QString opiedir = ::getenv ( "OPIEDIR" ); | 84 | QString opiedir = ::getenv ( "OPIEDIR" ); |
77 | QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); | 85 | QPixmap bgpix ( opiedir + "/pics/launcher/opie-background.jpg" ); |
78 | 86 | ||
79 | if ( !bgpix. isNull ( )) | 87 | if ( !bgpix. isNull ( )) |
80 | setBackgroundPixmap ( bgpix ); | 88 | setBackgroundPixmap ( bgpix ); |
81 | 89 | ||
82 | m_caption-> setText ( m_caption-> text ( ) + tr( "<center>%1 %2</center>" ). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); | 90 | m_caption-> setText ( m_caption-> text ( ) + tr( "<center>%1 %2</center>" ). arg ( ODevice::inst ( )-> systemString ( )). arg ( ODevice::inst ( )-> systemVersionString ( ))); |
83 | 91 | ||
84 | Config cfg ( "opie-login" ); | 92 | Config cfg ( "opie-login" ); |
85 | cfg. setGroup ( "General" ); | 93 | cfg. setGroup ( "General" ); |
86 | QString last = cfg. readEntry ( "LastLogin" ); | 94 | QString last = cfg. readEntry ( "LastLogin" ); |
87 | 95 | ||
88 | if ( !last. isEmpty ( )) | 96 | if ( !last. isEmpty ( )) |
89 | m_user-> setEditText ( last ); | 97 | m_user-> setEditText ( last ); |
98 | |||
99 | calcMaxWindowRect ( ); | ||
90 | } | 100 | } |
91 | 101 | ||
92 | LoginWindowImpl::~LoginWindowImpl ( ) | 102 | LoginWindowImpl::~LoginWindowImpl ( ) |
93 | { | 103 | { |
94 | } | 104 | } |
95 | 105 | ||
106 | |||
107 | void LoginWindowImpl::receive ( const QCString &msg, const QByteArray &data ) | ||
108 | { | ||
109 | QDataStream stream ( data, IO_ReadOnly ); | ||
110 | |||
111 | if ( msg == "hideInputMethod()" ) | ||
112 | m_input-> hideInputMethod ( ); | ||
113 | else if ( msg == "showInputMethod()" ) | ||
114 | m_input-> showInputMethod ( ); | ||
115 | else if ( msg == "reloadInputMethods()" ) | ||
116 | m_input-> loadInputMethods ( ); | ||
117 | } | ||
118 | |||
119 | void LoginWindowImpl::calcMaxWindowRect ( ) | ||
120 | { | ||
121 | #ifdef Q_WS_QWS | ||
122 | QRect wr; | ||
123 | int displayWidth = qApp-> desktop ( )-> width ( ); | ||
124 | QRect ir = m_input-> inputRect ( ); | ||
125 | if ( ir.isValid() ) | ||
126 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); | ||
127 | else | ||
128 | wr.setCoords( 0, 0, displayWidth-1, m_taskbar->y()-1 ); | ||
129 | |||
130 | #if QT_VERSION < 300 | ||
131 | wr = qt_screen-> mapToDevice ( wr, QSize ( qt_screen-> width ( ), qt_screen-> height ( ))); | ||
132 | #endif | ||
133 | |||
134 | QWSServer::setMaxWindowRect( wr ); | ||
135 | #endif | ||
136 | } | ||
137 | |||
138 | |||
96 | void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) | 139 | void LoginWindowImpl::keyPressEvent ( QKeyEvent *e ) |
97 | { | 140 | { |
98 | switch ( e-> key ( )) { | 141 | switch ( e-> key ( )) { |
99 | case HardKey_Suspend: suspend ( ); | 142 | case HardKey_Suspend: suspend ( ); |
100 | break; | 143 | break; |
101 | case HardKey_Backlight: backlight ( ); | 144 | case HardKey_Backlight: backlight ( ); |
102 | break; | 145 | break; |
103 | default: e-> ignore ( ); | 146 | default: e-> ignore ( ); |
104 | break; | 147 | break; |
105 | } | 148 | } |
106 | LoginWindow::keyPressEvent ( e ); | 149 | LoginWindow::keyPressEvent ( e ); |
107 | } | 150 | } |
108 | 151 | ||
109 | 152 | ||
110 | void LoginWindowImpl::toggleEchoMode ( bool t ) | 153 | void LoginWindowImpl::toggleEchoMode ( bool t ) |
111 | { | 154 | { |
112 | m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password ); | 155 | m_password-> setEchoMode ( t ? QLineEdit::Normal : QLineEdit::Password ); |
113 | } | 156 | } |
114 | 157 | ||
115 | void LoginWindowImpl::showIM ( ) | 158 | void LoginWindowImpl::showIM ( ) |
116 | { | 159 | { |
117 | m_input-> showInputMethod ( ); | 160 | m_input-> showInputMethod ( ); |
118 | } | 161 | } |
119 | 162 | ||
120 | void LoginWindowImpl::restart ( ) | 163 | void LoginWindowImpl::restart ( ) |
121 | { | 164 | { |
122 | qApp-> quit ( ); | 165 | qApp-> quit ( ); |
123 | } | 166 | } |
124 | 167 | ||
125 | void LoginWindowImpl::quit ( ) | 168 | void LoginWindowImpl::quit ( ) |
126 | { | 169 | { |
127 | lApp-> quitToConsole ( ); | 170 | lApp-> quitToConsole ( ); |
128 | } | 171 | } |
129 | 172 | ||
130 | void LoginWindowImpl::suspend ( ) | 173 | void LoginWindowImpl::suspend ( ) |
131 | { | 174 | { |
132 | ODevice::inst ( )-> suspend ( ); | 175 | ODevice::inst ( )-> suspend ( ); |
133 | 176 | ||
134 | QCopEnvelope e("QPE/System", "setBacklight(int)"); | 177 | QCopEnvelope e("QPE/System", "setBacklight(int)"); |
135 | e << -3; // Force on | 178 | e << -3; // Force on |
136 | } | 179 | } |
137 | 180 | ||
138 | void LoginWindowImpl::backlight ( ) | 181 | void LoginWindowImpl::backlight ( ) |
139 | { | 182 | { |
140 | QCopEnvelope e("QPE/System", "setBacklight(int)"); | 183 | QCopEnvelope e("QPE/System", "setBacklight(int)"); |
141 | e << -2; // toggle | 184 | e << -2; // toggle |
142 | } | 185 | } |
143 | 186 | ||
144 | class WaitLogo : public QLabel { | 187 | class WaitLogo : public QLabel { |
145 | public: | 188 | public: |
146 | WaitLogo ( ) : QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool ) | 189 | WaitLogo ( ) : QLabel ( 0, "wait hack!", WStyle_Customize | WStyle_NoBorder | WStyle_Tool ) |
147 | { | 190 | { |
148 | QImage img = Resource::loadImage ( "launcher/new_wait" ); | 191 | QImage img = Resource::loadImage ( "launcher/new_wait" ); |
149 | QPixmap pix; | 192 | QPixmap pix; |
150 | pix. convertFromImage ( img ); | 193 | pix. convertFromImage ( img ); |
151 | setPixmap ( pix ); | 194 | setPixmap ( pix ); |
152 | setAlignment ( AlignCenter ); | 195 | setAlignment ( AlignCenter ); |
153 | move ( 0, 0 ); | 196 | move ( 0, 0 ); |
154 | resize ( qApp-> desktop ( )-> width ( ), qApp-> desktop ( )-> height ( )); | 197 | resize ( qApp-> desktop ( )-> width ( ), qApp-> desktop ( )-> height ( )); |
155 | 198 | ||
156 | m_visible = false; | 199 | m_visible = false; |
157 | show ( ); | 200 | show ( ); |
158 | } | 201 | } |
159 | 202 | ||
160 | virtual void showEvent ( QShowEvent *e ) | 203 | virtual void showEvent ( QShowEvent *e ) |
161 | { | 204 | { |
162 | QLabel::showEvent ( e ); | 205 | QLabel::showEvent ( e ); |
163 | m_visible = true; | 206 | m_visible = true; |
164 | } | 207 | } |
165 | 208 | ||
166 | virtual void paintEvent ( QPaintEvent *e ) | 209 | virtual void paintEvent ( QPaintEvent *e ) |
167 | { | 210 | { |
168 | QLabel::paintEvent ( e ); | 211 | QLabel::paintEvent ( e ); |
169 | if ( m_visible ) | 212 | if ( m_visible ) |
170 | qApp-> quit ( ); | 213 | qApp-> quit ( ); |
171 | } | 214 | } |
172 | 215 | ||
173 | private: | 216 | private: |
174 | bool m_visible; | 217 | bool m_visible; |
175 | }; | 218 | }; |
176 | 219 | ||
177 | void LoginWindowImpl::login ( ) | 220 | void LoginWindowImpl::login ( ) |
178 | { | 221 | { |
179 | const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); | 222 | const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); |
180 | const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); | 223 | const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); |
181 | 224 | ||
182 | if ( !user || !user [0] ) | 225 | if ( !user || !user [0] ) |
183 | return; | 226 | return; |
184 | if ( !pass ) | 227 | if ( !pass ) |
185 | pass = ""; | 228 | pass = ""; |
186 | 229 | ||
187 | if ( lApp-> checkPassword ( user, pass )) { | 230 | if ( lApp-> checkPassword ( user, pass )) { |
188 | Config cfg ( "opie-login" ); | 231 | Config cfg ( "opie-login" ); |
189 | cfg. setGroup ( "General" ); | 232 | cfg. setGroup ( "General" ); |
190 | cfg. writeEntry ( "LastLogin", user ); | 233 | cfg. writeEntry ( "LastLogin", user ); |
191 | cfg. write ( ); | 234 | cfg. write ( ); |
192 | 235 | ||
193 | lApp-> setLoginAs ( user ); | 236 | lApp-> setLoginAs ( user ); |
194 | 237 | ||
195 | // Draw a big wait icon, the image can be altered in later revisions | 238 | // Draw a big wait icon, the image can be altered in later revisions |
196 | m_input-> hideInputMethod ( ); | 239 | m_input-> hideInputMethod ( ); |
197 | new WaitLogo ( ); | 240 | new WaitLogo ( ); |
198 | // WaitLogo::showEvent() calls qApp-> quit() | 241 | // WaitLogo::showEvent() calls qApp-> quit() |
199 | } | 242 | } |
200 | else { | 243 | else { |
201 | QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." )); | 244 | QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." )); |
202 | m_password-> clear ( ); | 245 | m_password-> clear ( ); |
203 | } | 246 | } |
204 | } | 247 | } |
diff --git a/core/opie-login/loginwindowimpl.h b/core/opie-login/loginwindowimpl.h index e769b03..df8dbbb 100644 --- a/core/opie-login/loginwindowimpl.h +++ b/core/opie-login/loginwindowimpl.h | |||
@@ -1,61 +1,63 @@ | |||
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 | 27 | ||
28 | #ifndef __OPIE_LOGINWINDOW_IMPL_H__ | 28 | #ifndef __OPIE_LOGINWINDOW_IMPL_H__ |
29 | #define __OPIE_LOGINWINDOW_IMPL_H__ | 29 | #define __OPIE_LOGINWINDOW_IMPL_H__ |
30 | 30 | ||
31 | #include "loginwindow.h" | 31 | #include "loginwindow.h" |
32 | 32 | ||
33 | class InputMethods; | 33 | class InputMethods; |
34 | 34 | ||
35 | class LoginWindowImpl : public LoginWindow { | 35 | class LoginWindowImpl : public LoginWindow { |
36 | Q_OBJECT | 36 | Q_OBJECT |
37 | 37 | ||
38 | public: | 38 | public: |
39 | LoginWindowImpl ( ); | 39 | LoginWindowImpl ( ); |
40 | virtual ~LoginWindowImpl ( ); | 40 | virtual ~LoginWindowImpl ( ); |
41 | 41 | ||
42 | protected slots: | 42 | protected slots: |
43 | void restart ( ); | 43 | void restart ( ); |
44 | void quit ( ); | 44 | void quit ( ); |
45 | void showIM ( ); | 45 | void showIM ( ); |
46 | void suspend ( ); | 46 | void suspend ( ); |
47 | void backlight ( ); | 47 | void backlight ( ); |
48 | void login ( ); | 48 | void login ( ); |
49 | void toggleEchoMode ( bool ); | 49 | void toggleEchoMode ( bool ); |
50 | void calcMaxWindowRect ( ); | ||
51 | void receive ( const QCString &, const QByteArray & ); | ||
50 | 52 | ||
51 | protected: | 53 | protected: |
52 | virtual void keyPressEvent ( QKeyEvent *e ); | 54 | virtual void keyPressEvent ( QKeyEvent *e ); |
53 | 55 | ||
54 | QStringList getAllUsers ( ); | 56 | QStringList getAllUsers ( ); |
55 | bool changeIdentity ( const char *user ); | 57 | bool changeIdentity ( const char *user ); |
56 | 58 | ||
57 | private: | 59 | private: |
58 | InputMethods *m_input; | 60 | InputMethods *m_input; |
59 | }; | 61 | }; |
60 | 62 | ||
61 | #endif | 63 | #endif |