summaryrefslogtreecommitdiff
authorzecke <zecke>2003-09-20 18:23:58 (UTC)
committer zecke <zecke>2003-09-20 18:23:58 (UTC)
commit2fbd2230957098e5601d9d5c4b04a4af220afbce (patch) (unidiff)
treed187f0e8b61f97f36764591f6daa81d5bc2cda41
parenta986ab57229fa7a0d039d320001dc48018951bf1 (diff)
downloadopie-2fbd2230957098e5601d9d5c4b04a4af220afbce.zip
opie-2fbd2230957098e5601d9d5c4b04a4af220afbce.tar.gz
opie-2fbd2230957098e5601d9d5c4b04a4af220afbce.tar.bz2
Thanks to treke for tweaking the ui file
Allow the user to set how the QCOP bridge should response Either in Qtopia1.7 mode or the one found prior including Opie1.0 or respond in both ways We still need to check what sync utilities can cope with 'both'
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/security/security.cpp17
-rw-r--r--core/settings/security/securitybase.ui27
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
@@ -10,32 +10,33 @@
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");
@@ -59,32 +60,35 @@
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
88Security::~Security() 92Security::~Security()
89{ 93{
90} 94}
@@ -119,32 +123,33 @@ void Security::show()
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
131void Security::accept() 135void Security::accept()
132{ 136{
133 applySecurity(); 137 applySecurity();
134 QDialog::accept(); 138 QDialog::accept();
139 QCopEnvelope env("QPE/System", "securityChanged()" );
135} 140}
136 141
137void Security::done(int r) 142void Security::done(int r)
138{ 143{
139 QDialog::done(r); 144 QDialog::done(r);
140 close(); 145 close();
141} 146}
142 147
143void Security::selectNet(int auth_peer,int auth_peer_bits) 148void 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 {
@@ -172,60 +177,60 @@ void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits)
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
188void Security::loadUsers ( void ) 193void 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}
211void Security::toggleAutoLogin(bool val) 216void 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}
218void Security::setSyncNet(const QString& sn) 223void 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
225void Security::applySecurity() 230void 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());
@@ -242,32 +247,34 @@ void Security::applySecurity()
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
261void Security::changeLoginName( int idx ) 268void Security::changeLoginName( int idx )
262{ 269{
263 autoLoginName = userlist->text(idx);; 270 autoLoginName = userlist->text(idx);;
264 updateGUI(); 271 updateGUI();
265} 272}
266 273
267void Security::changePassCode() 274void 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"));
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,30 +1,30 @@
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>
@@ -368,32 +368,57 @@
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>