author | kergoth <kergoth> | 2003-08-09 17:42:14 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-08-09 17:42:14 (UTC) |
commit | 1ab4ca95e4d2cf24d32b38c9031cb6076351e730 (patch) (side-by-side diff) | |
tree | 644d196b01c7f280981bd17da23c7592a18e5643 /core/settings/security/security.cpp | |
parent | ec14206f63dd93e9fb84c76cbc76fc1968637590 (diff) | |
download | opie-1ab4ca95e4d2cf24d32b38c9031cb6076351e730.zip opie-1ab4ca95e4d2cf24d32b38c9031cb6076351e730.tar.gz opie-1ab4ca95e4d2cf24d32b38c9031cb6076351e730.tar.bz2 |
Merge from BRANCH_1_0
Diffstat (limited to 'core/settings/security/security.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/settings/security/security.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/core/settings/security/security.cpp b/core/settings/security/security.cpp index 4701506..75a181b 100644 --- a/core/settings/security/security.cpp +++ b/core/settings/security/security.cpp @@ -21,2 +21,3 @@ +#include <qpe/qpeapplication.h> #include <qpe/config.h> @@ -29,2 +30,5 @@ #include <qmessagebox.h> +#include <qfile.h> +#include <qlistview.h> +#include <qtextstream.h> @@ -58,4 +62,21 @@ Security::Security( QWidget* parent, const char* name, WFlags fl ) + QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; + Config loginCfg(configFile,Config::File); + + loginCfg.setGroup("General"); + autoLoginName=loginCfg.readEntry("AutoLogin",""); + + if (autoLoginName.stripWhiteSpace().isEmpty()) { + autoLogin=false; + } else { + autoLogin=true; + } + + + connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool))); + connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int))); connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode())); connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode())); + + loadUsers(); updateGUI(); @@ -79,2 +100,6 @@ void Security::updateGUI() clearpasscode->setEnabled( !empty ); + + autologinToggle->setChecked(autoLogin); + userlist->setEnabled(autoLogin); + } @@ -162,2 +187,32 @@ void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) +void Security::loadUsers ( void ) +{ + QFile passwd("/etc/passwd"); + if ( passwd.open(IO_ReadOnly) ) { + QTextStream t( &passwd ); + QString s; + QStringList account; + while ( !t.eof() ) { + account = QStringList::split(':',t.readLine()); + + // Hide disabled accounts + if (*account.at(1)!="*") { + + userlist->insertItem(*account.at(0)); + // Highlight this item if it is set to autologinToggle + if ( *account.at(0) == autoLoginName) + userlist->setCurrentItem(userlist->count()-1); + } + } + passwd.close(); + } + +} +void Security::toggleAutoLogin(bool val) +{ + autoLogin=val; + userlist->setEnabled(val); + if (!autoLogin) + autoLoginName=userlist->currentText(); +} void Security::setSyncNet(const QString& sn) @@ -191,3 +246,20 @@ void Security::applySecurity() */ + + QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf"; + Config loginCfg(configFile,Config::File); + loginCfg.setGroup("General"); + + if (autoLogin) { + loginCfg.writeEntry("AutoLogin",autoLoginName); + } else { + loginCfg.removeEntry("AutoLogin"); + } + + } } + +void Security::changeLoginName( int idx ) +{ + autoLoginName = userlist->text(idx);; + updateGUI(); } |