-rw-r--r-- | core/settings/security/security.cpp | 17 | ||||
-rw-r--r-- | core/settings/security/securitybase.ui | 27 |
2 files changed, 38 insertions, 6 deletions
diff --git a/core/settings/security/security.cpp b/core/settings/security/security.cpp index 75a181b..c4726b3 100644 --- a/core/settings/security/security.cpp +++ b/core/settings/security/security.cpp | |||
@@ -1,307 +1,314 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "security.h" | 20 | #include "security.h" |
21 | 21 | ||
22 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include <qpe/config.h> | 23 | #include <qpe/config.h> |
24 | #include <qpe/password.h> | 24 | #include <qpe/password.h> |
25 | #include <qpe/qpedialog.h> | 25 | #include <qpe/qpedialog.h> |
26 | #include <qpe/qcopenvelope_qws.h> | ||
26 | 27 | ||
27 | #include <qcheckbox.h> | 28 | #include <qcheckbox.h> |
28 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
29 | #include <qcombobox.h> | 30 | #include <qcombobox.h> |
30 | #include <qmessagebox.h> | 31 | #include <qmessagebox.h> |
31 | #include <qfile.h> | 32 | #include <qfile.h> |
32 | #include <qlistview.h> | 33 | #include <qlistview.h> |
33 | #include <qtextstream.h> | 34 | #include <qtextstream.h> |
34 | 35 | ||
35 | Security::Security( QWidget* parent, const char* name, WFlags fl ) | 36 | Security::Security( QWidget* parent, const char* name, WFlags fl ) |
36 | : SecurityBase( parent, name, TRUE, fl ) | 37 | : SecurityBase( parent, name, TRUE, fl ) |
37 | { | 38 | { |
38 | valid=FALSE; | 39 | valid=FALSE; |
39 | Config cfg("Security"); | 40 | Config cfg("Security"); |
40 | cfg.setGroup("Passcode"); | 41 | cfg.setGroup("Passcode"); |
41 | passcode = cfg.readEntry("passcode"); | 42 | passcode = cfg.readEntry("passcode"); |
42 | passcode_poweron->setChecked(cfg.readBoolEntry("passcode_poweron",FALSE)); | 43 | passcode_poweron->setChecked(cfg.readBoolEntry("passcode_poweron",FALSE)); |
43 | cfg.setGroup("Sync"); | 44 | cfg.setGroup("Sync"); |
44 | int auth_peer = cfg.readNumEntry("auth_peer",0xc0a88100);//new default 192.168.129.0/24 | 45 | int auth_peer = cfg.readNumEntry("auth_peer",0xc0a88100);//new default 192.168.129.0/24 |
45 | int auth_peer_bits = cfg.readNumEntry("auth_peer_bits",24); | 46 | int auth_peer_bits = cfg.readNumEntry("auth_peer_bits",24); |
46 | selectNet(auth_peer,auth_peer_bits); | 47 | selectNet(auth_peer,auth_peer_bits); |
47 | connect(syncnet, SIGNAL(textChanged(const QString&)), | 48 | connect(syncnet, SIGNAL(textChanged(const QString&)), |
48 | this, SLOT(setSyncNet(const QString&))); | 49 | this, SLOT(setSyncNet(const QString&))); |
49 | 50 | ||
50 | /* | 51 | /* |
51 | cfg.setGroup("Remote"); | 52 | cfg.setGroup("Remote"); |
52 | if ( telnetAvailable() ) | 53 | if ( telnetAvailable() ) |
53 | telnet->setChecked(cfg.readEntry("allow_telnet")); | 54 | telnet->setChecked(cfg.readEntry("allow_telnet")); |
54 | else | 55 | else |
55 | telnet->hide(); | 56 | telnet->hide(); |
56 | 57 | ||
57 | if ( sshAvailable() ) | 58 | if ( sshAvailable() ) |
58 | ssh->setChecked(cfg.readEntry("allow_ssh")); | 59 | ssh->setChecked(cfg.readEntry("allow_ssh")); |
59 | else | 60 | else |
60 | ssh->hide(); | 61 | ssh->hide(); |
61 | */ | 62 | */ |
62 | 63 | ||
63 | QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; | 64 | QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; |
64 | Config loginCfg(configFile,Config::File); | 65 | Config loginCfg(configFile,Config::File); |
65 | 66 | ||
66 | loginCfg.setGroup("General"); | 67 | loginCfg.setGroup("General"); |
67 | autoLoginName=loginCfg.readEntry("AutoLogin",""); | 68 | autoLoginName=loginCfg.readEntry("AutoLogin",""); |
68 | 69 | ||
69 | if (autoLoginName.stripWhiteSpace().isEmpty()) { | 70 | if (autoLoginName.stripWhiteSpace().isEmpty()) { |
70 | autoLogin=false; | 71 | autoLogin=false; |
71 | } else { | 72 | } else { |
72 | autoLogin=true; | 73 | autoLogin=true; |
73 | } | 74 | } |
74 | 75 | ||
76 | cfg.setGroup("SyncMode"); | ||
77 | int mode = cfg.readNumEntry("Mode",2); // Default to Sharp | ||
78 | syncModeCombo->setCurrentItem( mode - 1 ); | ||
75 | 79 | ||
76 | connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool))); | 80 | connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool))); |
77 | connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int))); | 81 | connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int))); |
78 | connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode())); | 82 | connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode())); |
79 | connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode())); | 83 | connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode())); |
80 | 84 | ||
81 | loadUsers(); | 85 | loadUsers(); |
82 | updateGUI(); | 86 | updateGUI(); |
83 | 87 | ||
84 | dl = new QPEDialogListener(this); | 88 | dl = new QPEDialogListener(this); |
85 | showMaximized(); | 89 | showMaximized(); |
86 | } | 90 | } |
87 | 91 | ||
88 | Security::~Security() | 92 | Security::~Security() |
89 | { | 93 | { |
90 | } | 94 | } |
91 | 95 | ||
92 | 96 | ||
93 | void Security::updateGUI() | 97 | void Security::updateGUI() |
94 | { | 98 | { |
95 | bool empty = passcode.isEmpty(); | 99 | bool empty = passcode.isEmpty(); |
96 | 100 | ||
97 | changepasscode->setText( empty ? tr("Set passcode" ) | 101 | changepasscode->setText( empty ? tr("Set passcode" ) |
98 | : tr("Change passcode" ) ); | 102 | : tr("Change passcode" ) ); |
99 | passcode_poweron->setEnabled( !empty ); | 103 | passcode_poweron->setEnabled( !empty ); |
100 | clearpasscode->setEnabled( !empty ); | 104 | clearpasscode->setEnabled( !empty ); |
101 | 105 | ||
102 | autologinToggle->setChecked(autoLogin); | 106 | autologinToggle->setChecked(autoLogin); |
103 | userlist->setEnabled(autoLogin); | 107 | userlist->setEnabled(autoLogin); |
104 | 108 | ||
105 | } | 109 | } |
106 | 110 | ||
107 | 111 | ||
108 | void Security::show() | 112 | void Security::show() |
109 | { | 113 | { |
110 | valid=FALSE; | 114 | valid=FALSE; |
111 | setEnabled(FALSE); | 115 | setEnabled(FALSE); |
112 | SecurityBase::show(); | 116 | SecurityBase::show(); |
113 | if ( passcode.isEmpty() ) { | 117 | if ( passcode.isEmpty() ) { |
114 | // could insist... | 118 | // could insist... |
115 | //changePassCode(); | 119 | //changePassCode(); |
116 | //if ( passcode.isEmpty() ) | 120 | //if ( passcode.isEmpty() ) |
117 | //reject(); | 121 | //reject(); |
118 | } else { | 122 | } else { |
119 | QString pc = enterPassCode(tr("Enter passcode")); | 123 | QString pc = enterPassCode(tr("Enter passcode")); |
120 | if ( pc != passcode ) { | 124 | if ( pc != passcode ) { |
121 | QMessageBox::critical(this, tr("Passcode incorrect"), | 125 | QMessageBox::critical(this, tr("Passcode incorrect"), |
122 | tr("The passcode entered is incorrect.\nAccess denied")); | 126 | tr("The passcode entered is incorrect.\nAccess denied")); |
123 | reject(); | 127 | reject(); |
124 | return; | 128 | return; |
125 | } | 129 | } |
126 | } | 130 | } |
127 | setEnabled(TRUE); | 131 | setEnabled(TRUE); |
128 | valid=TRUE; | 132 | valid=TRUE; |
129 | } | 133 | } |
130 | 134 | ||
131 | void Security::accept() | 135 | void Security::accept() |
132 | { | 136 | { |
133 | applySecurity(); | 137 | applySecurity(); |
134 | QDialog::accept(); | 138 | QDialog::accept(); |
139 | QCopEnvelope env("QPE/System", "securityChanged()" ); | ||
135 | } | 140 | } |
136 | 141 | ||
137 | void Security::done(int r) | 142 | void Security::done(int r) |
138 | { | 143 | { |
139 | QDialog::done(r); | 144 | QDialog::done(r); |
140 | close(); | 145 | close(); |
141 | } | 146 | } |
142 | 147 | ||
143 | void Security::selectNet(int auth_peer,int auth_peer_bits) | 148 | void Security::selectNet(int auth_peer,int auth_peer_bits) |
144 | { | 149 | { |
145 | QString sn; | 150 | QString sn; |
146 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { | 151 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { |
147 | sn = tr("Any"); | 152 | sn = tr("Any"); |
148 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { | 153 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { |
149 | sn = tr("None"); | 154 | sn = tr("None"); |
150 | } else { | 155 | } else { |
151 | sn = | 156 | sn = |
152 | QString::number((auth_peer>>24)&0xff) + "." | 157 | QString::number((auth_peer>>24)&0xff) + "." |
153 | + QString::number((auth_peer>>16)&0xff) + "." | 158 | + QString::number((auth_peer>>16)&0xff) + "." |
154 | + QString::number((auth_peer>>8)&0xff) + "." | 159 | + QString::number((auth_peer>>8)&0xff) + "." |
155 | + QString::number((auth_peer>>0)&0xff) + "/" | 160 | + QString::number((auth_peer>>0)&0xff) + "/" |
156 | + QString::number(auth_peer_bits); | 161 | + QString::number(auth_peer_bits); |
157 | } | 162 | } |
158 | for (int i=0; i<syncnet->count(); i++) { | 163 | for (int i=0; i<syncnet->count(); i++) { |
159 | if ( syncnet->text(i).left(sn.length()) == sn ) { | 164 | if ( syncnet->text(i).left(sn.length()) == sn ) { |
160 | syncnet->setCurrentItem(i); | 165 | syncnet->setCurrentItem(i); |
161 | return; | 166 | return; |
162 | } | 167 | } |
163 | } | 168 | } |
164 | qDebug("No match for \"%s\"",sn.latin1()); | 169 | qDebug("No match for \"%s\"",sn.latin1()); |
165 | } | 170 | } |
166 | 171 | ||
167 | void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) | 172 | void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) |
168 | { | 173 | { |
169 | auth_peer=0; | 174 | auth_peer=0; |
170 | if ( sn == tr("Any") ) { | 175 | if ( sn == tr("Any") ) { |
171 | auth_peer = 0; | 176 | auth_peer = 0; |
172 | auth_peer_bits = 0; | 177 | auth_peer_bits = 0; |
173 | } else if ( sn == tr("None") ) { | 178 | } else if ( sn == tr("None") ) { |
174 | auth_peer = 0; | 179 | auth_peer = 0; |
175 | auth_peer_bits = 32; | 180 | auth_peer_bits = 32; |
176 | } else { | 181 | } else { |
177 | int x=0; | 182 | int x=0; |
178 | for (int i=0; i<4; i++) { | 183 | for (int i=0; i<4; i++) { |
179 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); | 184 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); |
180 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); | 185 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); |
181 | x = nx+1; | 186 | x = nx+1; |
182 | } | 187 | } |
183 | uint n = (uint)sn.find(' ',x)-x; | 188 | uint n = (uint)sn.find(' ',x)-x; |
184 | auth_peer_bits = sn.mid(x,n).toInt(); | 189 | auth_peer_bits = sn.mid(x,n).toInt(); |
185 | } | 190 | } |
186 | } | 191 | } |
187 | 192 | ||
188 | void Security::loadUsers ( void ) | 193 | void Security::loadUsers ( void ) |
189 | { | 194 | { |
190 | QFile passwd("/etc/passwd"); | 195 | QFile passwd("/etc/passwd"); |
191 | if ( passwd.open(IO_ReadOnly) ) { | 196 | if ( passwd.open(IO_ReadOnly) ) { |
192 | QTextStream t( &passwd ); | 197 | QTextStream t( &passwd ); |
193 | QString s; | 198 | QString s; |
194 | QStringList account; | 199 | QStringList account; |
195 | while ( !t.eof() ) { | 200 | while ( !t.eof() ) { |
196 | account = QStringList::split(':',t.readLine()); | 201 | account = QStringList::split(':',t.readLine()); |
197 | 202 | ||
198 | // Hide disabled accounts | 203 | // Hide disabled accounts |
199 | if (*account.at(1)!="*") { | 204 | if (*account.at(1)!="*") { |
200 | 205 | ||
201 | userlist->insertItem(*account.at(0)); | 206 | userlist->insertItem(*account.at(0)); |
202 | // Highlight this item if it is set to autologinToggle | 207 | // Highlight this item if it is set to autologinToggle |
203 | if ( *account.at(0) == autoLoginName) | 208 | if ( *account.at(0) == autoLoginName) |
204 | userlist->setCurrentItem(userlist->count()-1); | 209 | userlist->setCurrentItem(userlist->count()-1); |
205 | } | 210 | } |
206 | } | 211 | } |
207 | passwd.close(); | 212 | passwd.close(); |
208 | } | 213 | } |
209 | 214 | ||
210 | } | 215 | } |
211 | void Security::toggleAutoLogin(bool val) | 216 | void Security::toggleAutoLogin(bool val) |
212 | { | 217 | { |
213 | autoLogin=val; | 218 | autoLogin=val; |
214 | userlist->setEnabled(val); | 219 | userlist->setEnabled(val); |
215 | if (!autoLogin) | 220 | if (!autoLogin) |
216 | autoLoginName=userlist->currentText(); | 221 | autoLoginName=userlist->currentText(); |
217 | } | 222 | } |
218 | void Security::setSyncNet(const QString& sn) | 223 | void Security::setSyncNet(const QString& sn) |
219 | { | 224 | { |
220 | int auth_peer,auth_peer_bits; | 225 | int auth_peer,auth_peer_bits; |
221 | parseNet(sn,auth_peer,auth_peer_bits); | 226 | parseNet(sn,auth_peer,auth_peer_bits); |
222 | selectNet(auth_peer,auth_peer_bits); | 227 | selectNet(auth_peer,auth_peer_bits); |
223 | } | 228 | } |
224 | 229 | ||
225 | void Security::applySecurity() | 230 | void Security::applySecurity() |
226 | { | 231 | { |
227 | if ( valid ) { | 232 | if ( valid ) { |
228 | Config cfg("Security"); | 233 | Config cfg("Security"); |
229 | cfg.setGroup("Passcode"); | 234 | cfg.setGroup("Passcode"); |
230 | cfg.writeEntry("passcode",passcode); | 235 | cfg.writeEntry("passcode",passcode); |
231 | cfg.writeEntry("passcode_poweron",passcode_poweron->isChecked()); | 236 | cfg.writeEntry("passcode_poweron",passcode_poweron->isChecked()); |
232 | cfg.setGroup("Sync"); | 237 | cfg.setGroup("Sync"); |
233 | int auth_peer=0; | 238 | int auth_peer=0; |
234 | int auth_peer_bits; | 239 | int auth_peer_bits; |
235 | QString sn = syncnet->currentText(); | 240 | QString sn = syncnet->currentText(); |
236 | parseNet(sn,auth_peer,auth_peer_bits); | 241 | parseNet(sn,auth_peer,auth_peer_bits); |
237 | cfg.writeEntry("auth_peer",auth_peer); | 242 | cfg.writeEntry("auth_peer",auth_peer); |
238 | cfg.writeEntry("auth_peer_bits",auth_peer_bits); | 243 | cfg.writeEntry("auth_peer_bits",auth_peer_bits); |
239 | /* | 244 | /* |
240 | cfg.setGroup("Remote"); | 245 | cfg.setGroup("Remote"); |
241 | if ( telnetAvailable() ) | 246 | if ( telnetAvailable() ) |
242 | cfg.writeEntry("allow_telnet",telnet->isChecked()); | 247 | cfg.writeEntry("allow_telnet",telnet->isChecked()); |
243 | if ( sshAvailable() ) | 248 | if ( sshAvailable() ) |
244 | cfg.writeEntry("allow_ssh",ssh->isChecked()); | 249 | cfg.writeEntry("allow_ssh",ssh->isChecked()); |
245 | // ### write ssh/telnet sys config files | 250 | // ### write ssh/telnet sys config files |
246 | */ | 251 | */ |
247 | 252 | ||
248 | QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; | 253 | QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; |
249 | Config loginCfg(configFile,Config::File); | 254 | Config loginCfg(configFile,Config::File); |
250 | loginCfg.setGroup("General"); | 255 | loginCfg.setGroup("General"); |
251 | 256 | ||
252 | if (autoLogin) { | 257 | if (autoLogin) { |
253 | loginCfg.writeEntry("AutoLogin",autoLoginName); | 258 | loginCfg.writeEntry("AutoLogin",autoLoginName); |
254 | } else { | 259 | } else { |
255 | loginCfg.removeEntry("AutoLogin"); | 260 | loginCfg.removeEntry("AutoLogin"); |
256 | } | 261 | } |
257 | 262 | ||
263 | cfg.setGroup("SyncMode"); | ||
264 | cfg.writeEntry("Mode", syncModeCombo->currentItem()+1 ); | ||
258 | } | 265 | } |
259 | } | 266 | } |
260 | 267 | ||
261 | void Security::changeLoginName( int idx ) | 268 | void Security::changeLoginName( int idx ) |
262 | { | 269 | { |
263 | autoLoginName = userlist->text(idx);; | 270 | autoLoginName = userlist->text(idx);; |
264 | updateGUI(); | 271 | updateGUI(); |
265 | } | 272 | } |
266 | 273 | ||
267 | void Security::changePassCode() | 274 | void Security::changePassCode() |
268 | { | 275 | { |
269 | QString new1; | 276 | QString new1; |
270 | QString new2; | 277 | QString new2; |
271 | 278 | ||
272 | do { | 279 | do { |
273 | new1 = enterPassCode(tr("Enter new passcode")); | 280 | new1 = enterPassCode(tr("Enter new passcode")); |
274 | if ( new1.isNull() ) | 281 | if ( new1.isNull() ) |
275 | return; | 282 | return; |
276 | new2 = enterPassCode(tr("Re-enter new passcode")); | 283 | new2 = enterPassCode(tr("Re-enter new passcode")); |
277 | if ( new2.isNull() ) | 284 | if ( new2.isNull() ) |
278 | return; | 285 | return; |
279 | } while (new1 != new2); | 286 | } while (new1 != new2); |
280 | 287 | ||
281 | passcode = new1; | 288 | passcode = new1; |
282 | updateGUI(); | 289 | updateGUI(); |
283 | } | 290 | } |
284 | 291 | ||
285 | void Security::clearPassCode() | 292 | void Security::clearPassCode() |
286 | { | 293 | { |
287 | passcode = QString::null; | 294 | passcode = QString::null; |
288 | updateGUI(); | 295 | updateGUI(); |
289 | } | 296 | } |
290 | 297 | ||
291 | 298 | ||
292 | QString Security::enterPassCode(const QString& prompt) | 299 | QString Security::enterPassCode(const QString& prompt) |
293 | { | 300 | { |
294 | return Password::getPassword(prompt); | 301 | return Password::getPassword(prompt); |
295 | } | 302 | } |
296 | 303 | ||
297 | bool Security::telnetAvailable() const | 304 | bool Security::telnetAvailable() const |
298 | { | 305 | { |
299 | // ### not implemented | 306 | // ### not implemented |
300 | return FALSE; | 307 | return FALSE; |
301 | } | 308 | } |
302 | 309 | ||
303 | bool Security::sshAvailable() const | 310 | bool Security::sshAvailable() const |
304 | { | 311 | { |
305 | // ### not implemented | 312 | // ### not implemented |
306 | return FALSE; | 313 | return FALSE; |
307 | } | 314 | } |
diff --git a/core/settings/security/securitybase.ui b/core/settings/security/securitybase.ui index da25f39..73290e5 100644 --- a/core/settings/security/securitybase.ui +++ b/core/settings/security/securitybase.ui | |||
@@ -1,412 +1,437 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>SecurityBase</class> | 2 | <class>SecurityBase</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QDialog</class> | 4 | <class>QDialog</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>SecurityBase</cstring> | 7 | <cstring>SecurityBase</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>329</width> | 14 | <width>339</width> |
15 | <height>483</height> | 15 | <height>483</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>Security Settings</string> | 20 | <string>Security Settings</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>QTabWidget</class> | 38 | <class>QTabWidget</class> |
39 | <property stdset="1"> | 39 | <property stdset="1"> |
40 | <name>name</name> | 40 | <name>name</name> |
41 | <cstring>TabWidget2</cstring> | 41 | <cstring>TabWidget2</cstring> |
42 | </property> | 42 | </property> |
43 | <property> | 43 | <property> |
44 | <name>layoutMargin</name> | 44 | <name>layoutMargin</name> |
45 | </property> | 45 | </property> |
46 | <widget> | 46 | <widget> |
47 | <class>QWidget</class> | 47 | <class>QWidget</class> |
48 | <property stdset="1"> | 48 | <property stdset="1"> |
49 | <name>name</name> | 49 | <name>name</name> |
50 | <cstring>tab</cstring> | 50 | <cstring>tab</cstring> |
51 | </property> | 51 | </property> |
52 | <attribute> | 52 | <attribute> |
53 | <name>title</name> | 53 | <name>title</name> |
54 | <string>Passcode</string> | 54 | <string>Passcode</string> |
55 | </attribute> | 55 | </attribute> |
56 | <vbox> | 56 | <vbox> |
57 | <property stdset="1"> | 57 | <property stdset="1"> |
58 | <name>margin</name> | 58 | <name>margin</name> |
59 | <number>6</number> | 59 | <number>6</number> |
60 | </property> | 60 | </property> |
61 | <property stdset="1"> | 61 | <property stdset="1"> |
62 | <name>spacing</name> | 62 | <name>spacing</name> |
63 | <number>6</number> | 63 | <number>6</number> |
64 | </property> | 64 | </property> |
65 | <widget> | 65 | <widget> |
66 | <class>QGroupBox</class> | 66 | <class>QGroupBox</class> |
67 | <property stdset="1"> | 67 | <property stdset="1"> |
68 | <name>name</name> | 68 | <name>name</name> |
69 | <cstring>GroupBox4</cstring> | 69 | <cstring>GroupBox4</cstring> |
70 | </property> | 70 | </property> |
71 | <property stdset="1"> | 71 | <property stdset="1"> |
72 | <name>title</name> | 72 | <name>title</name> |
73 | <string>Passcode</string> | 73 | <string>Passcode</string> |
74 | </property> | 74 | </property> |
75 | <vbox> | 75 | <vbox> |
76 | <property stdset="1"> | 76 | <property stdset="1"> |
77 | <name>margin</name> | 77 | <name>margin</name> |
78 | <number>11</number> | 78 | <number>11</number> |
79 | </property> | 79 | </property> |
80 | <property stdset="1"> | 80 | <property stdset="1"> |
81 | <name>spacing</name> | 81 | <name>spacing</name> |
82 | <number>6</number> | 82 | <number>6</number> |
83 | </property> | 83 | </property> |
84 | <widget> | 84 | <widget> |
85 | <class>QLayoutWidget</class> | 85 | <class>QLayoutWidget</class> |
86 | <property stdset="1"> | 86 | <property stdset="1"> |
87 | <name>name</name> | 87 | <name>name</name> |
88 | <cstring>Layout1</cstring> | 88 | <cstring>Layout1</cstring> |
89 | </property> | 89 | </property> |
90 | <property> | 90 | <property> |
91 | <name>layoutSpacing</name> | 91 | <name>layoutSpacing</name> |
92 | </property> | 92 | </property> |
93 | <hbox> | 93 | <hbox> |
94 | <property stdset="1"> | 94 | <property stdset="1"> |
95 | <name>margin</name> | 95 | <name>margin</name> |
96 | <number>0</number> | 96 | <number>0</number> |
97 | </property> | 97 | </property> |
98 | <property stdset="1"> | 98 | <property stdset="1"> |
99 | <name>spacing</name> | 99 | <name>spacing</name> |
100 | <number>-1</number> | 100 | <number>-1</number> |
101 | </property> | 101 | </property> |
102 | <widget> | 102 | <widget> |
103 | <class>QPushButton</class> | 103 | <class>QPushButton</class> |
104 | <property stdset="1"> | 104 | <property stdset="1"> |
105 | <name>name</name> | 105 | <name>name</name> |
106 | <cstring>changepasscode</cstring> | 106 | <cstring>changepasscode</cstring> |
107 | </property> | 107 | </property> |
108 | <property stdset="1"> | 108 | <property stdset="1"> |
109 | <name>text</name> | 109 | <name>text</name> |
110 | <string>Change passcode</string> | 110 | <string>Change passcode</string> |
111 | </property> | 111 | </property> |
112 | </widget> | 112 | </widget> |
113 | <widget> | 113 | <widget> |
114 | <class>QPushButton</class> | 114 | <class>QPushButton</class> |
115 | <property stdset="1"> | 115 | <property stdset="1"> |
116 | <name>name</name> | 116 | <name>name</name> |
117 | <cstring>clearpasscode</cstring> | 117 | <cstring>clearpasscode</cstring> |
118 | </property> | 118 | </property> |
119 | <property stdset="1"> | 119 | <property stdset="1"> |
120 | <name>text</name> | 120 | <name>text</name> |
121 | <string>Clear passcode</string> | 121 | <string>Clear passcode</string> |
122 | </property> | 122 | </property> |
123 | </widget> | 123 | </widget> |
124 | </hbox> | 124 | </hbox> |
125 | </widget> | 125 | </widget> |
126 | <widget> | 126 | <widget> |
127 | <class>QCheckBox</class> | 127 | <class>QCheckBox</class> |
128 | <property stdset="1"> | 128 | <property stdset="1"> |
129 | <name>name</name> | 129 | <name>name</name> |
130 | <cstring>passcode_poweron</cstring> | 130 | <cstring>passcode_poweron</cstring> |
131 | </property> | 131 | </property> |
132 | <property stdset="1"> | 132 | <property stdset="1"> |
133 | <name>text</name> | 133 | <name>text</name> |
134 | <string>Require pass code at power-on</string> | 134 | <string>Require pass code at power-on</string> |
135 | </property> | 135 | </property> |
136 | </widget> | 136 | </widget> |
137 | <widget> | 137 | <widget> |
138 | <class>QLabel</class> | 138 | <class>QLabel</class> |
139 | <property stdset="1"> | 139 | <property stdset="1"> |
140 | <name>name</name> | 140 | <name>name</name> |
141 | <cstring>TextLabel1</cstring> | 141 | <cstring>TextLabel1</cstring> |
142 | </property> | 142 | </property> |
143 | <property stdset="1"> | 143 | <property stdset="1"> |
144 | <name>sizePolicy</name> | 144 | <name>sizePolicy</name> |
145 | <sizepolicy> | 145 | <sizepolicy> |
146 | <hsizetype>5</hsizetype> | 146 | <hsizetype>5</hsizetype> |
147 | <vsizetype>7</vsizetype> | 147 | <vsizetype>7</vsizetype> |
148 | </sizepolicy> | 148 | </sizepolicy> |
149 | </property> | 149 | </property> |
150 | <property stdset="1"> | 150 | <property stdset="1"> |
151 | <name>text</name> | 151 | <name>text</name> |
152 | <string><P>Pass code protection provides a minimal level of protection from casual access to this device.</string> | 152 | <string><P>Pass code protection provides a minimal level of protection from casual access to this device.</string> |
153 | </property> | 153 | </property> |
154 | <property stdset="1"> | 154 | <property stdset="1"> |
155 | <name>textFormat</name> | 155 | <name>textFormat</name> |
156 | <enum>RichText</enum> | 156 | <enum>RichText</enum> |
157 | </property> | 157 | </property> |
158 | <property stdset="1"> | 158 | <property stdset="1"> |
159 | <name>alignment</name> | 159 | <name>alignment</name> |
160 | <set>AlignTop|AlignLeft</set> | 160 | <set>AlignTop|AlignLeft</set> |
161 | </property> | 161 | </property> |
162 | <property> | 162 | <property> |
163 | <name>vAlign</name> | 163 | <name>vAlign</name> |
164 | </property> | 164 | </property> |
165 | </widget> | 165 | </widget> |
166 | </vbox> | 166 | </vbox> |
167 | </widget> | 167 | </widget> |
168 | <spacer> | 168 | <spacer> |
169 | <property> | 169 | <property> |
170 | <name>name</name> | 170 | <name>name</name> |
171 | <cstring>Spacer3</cstring> | 171 | <cstring>Spacer3</cstring> |
172 | </property> | 172 | </property> |
173 | <property stdset="1"> | 173 | <property stdset="1"> |
174 | <name>orientation</name> | 174 | <name>orientation</name> |
175 | <enum>Vertical</enum> | 175 | <enum>Vertical</enum> |
176 | </property> | 176 | </property> |
177 | <property stdset="1"> | 177 | <property stdset="1"> |
178 | <name>sizeType</name> | 178 | <name>sizeType</name> |
179 | <enum>Expanding</enum> | 179 | <enum>Expanding</enum> |
180 | </property> | 180 | </property> |
181 | <property> | 181 | <property> |
182 | <name>sizeHint</name> | 182 | <name>sizeHint</name> |
183 | <size> | 183 | <size> |
184 | <width>20</width> | 184 | <width>20</width> |
185 | <height>20</height> | 185 | <height>20</height> |
186 | </size> | 186 | </size> |
187 | </property> | 187 | </property> |
188 | </spacer> | 188 | </spacer> |
189 | </vbox> | 189 | </vbox> |
190 | </widget> | 190 | </widget> |
191 | <widget> | 191 | <widget> |
192 | <class>QWidget</class> | 192 | <class>QWidget</class> |
193 | <property stdset="1"> | 193 | <property stdset="1"> |
194 | <name>name</name> | 194 | <name>name</name> |
195 | <cstring>tab</cstring> | 195 | <cstring>tab</cstring> |
196 | </property> | 196 | </property> |
197 | <attribute> | 197 | <attribute> |
198 | <name>title</name> | 198 | <name>title</name> |
199 | <string>Login</string> | 199 | <string>Login</string> |
200 | </attribute> | 200 | </attribute> |
201 | <vbox> | 201 | <vbox> |
202 | <property stdset="1"> | 202 | <property stdset="1"> |
203 | <name>margin</name> | 203 | <name>margin</name> |
204 | <number>6</number> | 204 | <number>6</number> |
205 | </property> | 205 | </property> |
206 | <property stdset="1"> | 206 | <property stdset="1"> |
207 | <name>spacing</name> | 207 | <name>spacing</name> |
208 | <number>6</number> | 208 | <number>6</number> |
209 | </property> | 209 | </property> |
210 | <widget> | 210 | <widget> |
211 | <class>QGroupBox</class> | 211 | <class>QGroupBox</class> |
212 | <property stdset="1"> | 212 | <property stdset="1"> |
213 | <name>name</name> | 213 | <name>name</name> |
214 | <cstring>GroupBox3</cstring> | 214 | <cstring>GroupBox3</cstring> |
215 | </property> | 215 | </property> |
216 | <property stdset="1"> | 216 | <property stdset="1"> |
217 | <name>title</name> | 217 | <name>title</name> |
218 | <string>Login</string> | 218 | <string>Login</string> |
219 | </property> | 219 | </property> |
220 | <vbox> | 220 | <vbox> |
221 | <property stdset="1"> | 221 | <property stdset="1"> |
222 | <name>margin</name> | 222 | <name>margin</name> |
223 | <number>11</number> | 223 | <number>11</number> |
224 | </property> | 224 | </property> |
225 | <property stdset="1"> | 225 | <property stdset="1"> |
226 | <name>spacing</name> | 226 | <name>spacing</name> |
227 | <number>6</number> | 227 | <number>6</number> |
228 | </property> | 228 | </property> |
229 | <widget> | 229 | <widget> |
230 | <class>QCheckBox</class> | 230 | <class>QCheckBox</class> |
231 | <property stdset="1"> | 231 | <property stdset="1"> |
232 | <name>name</name> | 232 | <name>name</name> |
233 | <cstring>autologinToggle</cstring> | 233 | <cstring>autologinToggle</cstring> |
234 | </property> | 234 | </property> |
235 | <property stdset="1"> | 235 | <property stdset="1"> |
236 | <name>text</name> | 236 | <name>text</name> |
237 | <string>Login Automatically</string> | 237 | <string>Login Automatically</string> |
238 | </property> | 238 | </property> |
239 | </widget> | 239 | </widget> |
240 | <widget> | 240 | <widget> |
241 | <class>QComboBox</class> | 241 | <class>QComboBox</class> |
242 | <property stdset="1"> | 242 | <property stdset="1"> |
243 | <name>name</name> | 243 | <name>name</name> |
244 | <cstring>userlist</cstring> | 244 | <cstring>userlist</cstring> |
245 | </property> | 245 | </property> |
246 | </widget> | 246 | </widget> |
247 | </vbox> | 247 | </vbox> |
248 | </widget> | 248 | </widget> |
249 | <spacer> | 249 | <spacer> |
250 | <property> | 250 | <property> |
251 | <name>name</name> | 251 | <name>name</name> |
252 | <cstring>Spacer2</cstring> | 252 | <cstring>Spacer2</cstring> |
253 | </property> | 253 | </property> |
254 | <property stdset="1"> | 254 | <property stdset="1"> |
255 | <name>orientation</name> | 255 | <name>orientation</name> |
256 | <enum>Vertical</enum> | 256 | <enum>Vertical</enum> |
257 | </property> | 257 | </property> |
258 | <property stdset="1"> | 258 | <property stdset="1"> |
259 | <name>sizeType</name> | 259 | <name>sizeType</name> |
260 | <enum>Expanding</enum> | 260 | <enum>Expanding</enum> |
261 | </property> | 261 | </property> |
262 | <property> | 262 | <property> |
263 | <name>sizeHint</name> | 263 | <name>sizeHint</name> |
264 | <size> | 264 | <size> |
265 | <width>20</width> | 265 | <width>20</width> |
266 | <height>20</height> | 266 | <height>20</height> |
267 | </size> | 267 | </size> |
268 | </property> | 268 | </property> |
269 | </spacer> | 269 | </spacer> |
270 | </vbox> | 270 | </vbox> |
271 | </widget> | 271 | </widget> |
272 | <widget> | 272 | <widget> |
273 | <class>QWidget</class> | 273 | <class>QWidget</class> |
274 | <property stdset="1"> | 274 | <property stdset="1"> |
275 | <name>name</name> | 275 | <name>name</name> |
276 | <cstring>tab</cstring> | 276 | <cstring>tab</cstring> |
277 | </property> | 277 | </property> |
278 | <attribute> | 278 | <attribute> |
279 | <name>title</name> | 279 | <name>title</name> |
280 | <string>Sync</string> | 280 | <string>Sync</string> |
281 | </attribute> | 281 | </attribute> |
282 | <vbox> | 282 | <vbox> |
283 | <property stdset="1"> | 283 | <property stdset="1"> |
284 | <name>margin</name> | 284 | <name>margin</name> |
285 | <number>6</number> | 285 | <number>6</number> |
286 | </property> | 286 | </property> |
287 | <property stdset="1"> | 287 | <property stdset="1"> |
288 | <name>spacing</name> | 288 | <name>spacing</name> |
289 | <number>6</number> | 289 | <number>6</number> |
290 | </property> | 290 | </property> |
291 | <widget> | 291 | <widget> |
292 | <class>QGroupBox</class> | 292 | <class>QGroupBox</class> |
293 | <property stdset="1"> | 293 | <property stdset="1"> |
294 | <name>name</name> | 294 | <name>name</name> |
295 | <cstring>GroupBox2</cstring> | 295 | <cstring>GroupBox2</cstring> |
296 | </property> | 296 | </property> |
297 | <property stdset="1"> | 297 | <property stdset="1"> |
298 | <name>title</name> | 298 | <name>title</name> |
299 | <string>Sync</string> | 299 | <string>Sync</string> |
300 | </property> | 300 | </property> |
301 | <vbox> | 301 | <vbox> |
302 | <property stdset="1"> | 302 | <property stdset="1"> |
303 | <name>margin</name> | 303 | <name>margin</name> |
304 | <number>11</number> | 304 | <number>11</number> |
305 | </property> | 305 | </property> |
306 | <property stdset="1"> | 306 | <property stdset="1"> |
307 | <name>spacing</name> | 307 | <name>spacing</name> |
308 | <number>6</number> | 308 | <number>6</number> |
309 | </property> | 309 | </property> |
310 | <widget> | 310 | <widget> |
311 | <class>QLabel</class> | 311 | <class>QLabel</class> |
312 | <property stdset="1"> | 312 | <property stdset="1"> |
313 | <name>name</name> | 313 | <name>name</name> |
314 | <cstring>TextLabel1_2</cstring> | 314 | <cstring>TextLabel1_2</cstring> |
315 | </property> | 315 | </property> |
316 | <property stdset="1"> | 316 | <property stdset="1"> |
317 | <name>text</name> | 317 | <name>text</name> |
318 | <string>Accept sync from network:</string> | 318 | <string>Accept sync from network:</string> |
319 | </property> | 319 | </property> |
320 | <property stdset="1"> | 320 | <property stdset="1"> |
321 | <name>textFormat</name> | 321 | <name>textFormat</name> |
322 | <enum>RichText</enum> | 322 | <enum>RichText</enum> |
323 | </property> | 323 | </property> |
324 | </widget> | 324 | </widget> |
325 | <widget> | 325 | <widget> |
326 | <class>QComboBox</class> | 326 | <class>QComboBox</class> |
327 | <item> | 327 | <item> |
328 | <property> | 328 | <property> |
329 | <name>text</name> | 329 | <name>text</name> |
330 | <string>192.168.129.0/24 (default)</string> | 330 | <string>192.168.129.0/24 (default)</string> |
331 | </property> | 331 | </property> |
332 | </item> | 332 | </item> |
333 | <item> | 333 | <item> |
334 | <property> | 334 | <property> |
335 | <name>text</name> | 335 | <name>text</name> |
336 | <string>192.168.1.0/24</string> | 336 | <string>192.168.1.0/24</string> |
337 | </property> | 337 | </property> |
338 | </item> | 338 | </item> |
339 | <item> | 339 | <item> |
340 | <property> | 340 | <property> |
341 | <name>text</name> | 341 | <name>text</name> |
342 | <string>192.168.0.0/16</string> | 342 | <string>192.168.0.0/16</string> |
343 | </property> | 343 | </property> |
344 | </item> | 344 | </item> |
345 | <item> | 345 | <item> |
346 | <property> | 346 | <property> |
347 | <name>text</name> | 347 | <name>text</name> |
348 | <string>172.16.0.0/12</string> | 348 | <string>172.16.0.0/12</string> |
349 | </property> | 349 | </property> |
350 | </item> | 350 | </item> |
351 | <item> | 351 | <item> |
352 | <property> | 352 | <property> |
353 | <name>text</name> | 353 | <name>text</name> |
354 | <string>10.0.0.0/8</string> | 354 | <string>10.0.0.0/8</string> |
355 | </property> | 355 | </property> |
356 | </item> | 356 | </item> |
357 | <item> | 357 | <item> |
358 | <property> | 358 | <property> |
359 | <name>text</name> | 359 | <name>text</name> |
360 | <string>1.0.0.0/8</string> | 360 | <string>1.0.0.0/8</string> |
361 | </property> | 361 | </property> |
362 | </item> | 362 | </item> |
363 | <item> | 363 | <item> |
364 | <property> | 364 | <property> |
365 | <name>text</name> | 365 | <name>text</name> |
366 | <string>Any</string> | 366 | <string>Any</string> |
367 | </property> | 367 | </property> |
368 | </item> | 368 | </item> |
369 | <item> | 369 | <item> |
370 | <property> | 370 | <property> |
371 | <name>text</name> | 371 | <name>text</name> |
372 | <string>None</string> | 372 | <string>None</string> |
373 | </property> | 373 | </property> |
374 | </item> | 374 | </item> |
375 | <property stdset="1"> | 375 | <property stdset="1"> |
376 | <name>name</name> | 376 | <name>name</name> |
377 | <cstring>syncnet</cstring> | 377 | <cstring>syncnet</cstring> |
378 | </property> | 378 | </property> |
379 | <property stdset="1"> | 379 | <property stdset="1"> |
380 | <name>editable</name> | 380 | <name>editable</name> |
381 | <bool>true</bool> | 381 | <bool>true</bool> |
382 | </property> | 382 | </property> |
383 | </widget> | 383 | </widget> |
384 | <widget> | ||
385 | <class>QComboBox</class> | ||
386 | <item> | ||
387 | <property> | ||
388 | <name>text</name> | ||
389 | <string>Qtopia 1.7</string> | ||
390 | </property> | ||
391 | </item> | ||
392 | <item> | ||
393 | <property> | ||
394 | <name>text</name> | ||
395 | <string>Opie 1.0</string> | ||
396 | </property> | ||
397 | </item> | ||
398 | <item> | ||
399 | <property> | ||
400 | <name>text</name> | ||
401 | <string>Both</string> | ||
402 | </property> | ||
403 | </item> | ||
404 | <property stdset="1"> | ||
405 | <name>name</name> | ||
406 | <cstring>syncModeCombo</cstring> | ||
407 | </property> | ||
408 | </widget> | ||
384 | </vbox> | 409 | </vbox> |
385 | </widget> | 410 | </widget> |
386 | <spacer> | 411 | <spacer> |
387 | <property> | 412 | <property> |
388 | <name>name</name> | 413 | <name>name</name> |
389 | <cstring>Spacer1</cstring> | 414 | <cstring>Spacer1</cstring> |
390 | </property> | 415 | </property> |
391 | <property stdset="1"> | 416 | <property stdset="1"> |
392 | <name>orientation</name> | 417 | <name>orientation</name> |
393 | <enum>Vertical</enum> | 418 | <enum>Vertical</enum> |
394 | </property> | 419 | </property> |
395 | <property stdset="1"> | 420 | <property stdset="1"> |
396 | <name>sizeType</name> | 421 | <name>sizeType</name> |
397 | <enum>Expanding</enum> | 422 | <enum>Expanding</enum> |
398 | </property> | 423 | </property> |
399 | <property> | 424 | <property> |
400 | <name>sizeHint</name> | 425 | <name>sizeHint</name> |
401 | <size> | 426 | <size> |
402 | <width>20</width> | 427 | <width>20</width> |
403 | <height>20</height> | 428 | <height>20</height> |
404 | </size> | 429 | </size> |
405 | </property> | 430 | </property> |
406 | </spacer> | 431 | </spacer> |
407 | </vbox> | 432 | </vbox> |
408 | </widget> | 433 | </widget> |
409 | </widget> | 434 | </widget> |
410 | </vbox> | 435 | </vbox> |
411 | </widget> | 436 | </widget> |
412 | </UI> | 437 | </UI> |