diff options
Diffstat (limited to 'kcontrol/kdm/kdm-conv.cpp')
-rw-r--r-- | kcontrol/kdm/kdm-conv.cpp | 362 |
1 files changed, 0 insertions, 362 deletions
diff --git a/kcontrol/kdm/kdm-conv.cpp b/kcontrol/kdm/kdm-conv.cpp deleted file mode 100644 index 64b8b9727..000000000 --- a/kcontrol/kdm/kdm-conv.cpp +++ /dev/null @@ -1,362 +0,0 @@ -/* This file is part of the KDE Display Manager Configuration package - - Copyright (C) 2000 Oswald Buddenhagen <[email protected]> - Based on several other files. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <unistd.h> -#include <sys/types.h> - - -#include <tqlayout.h> -#include <tqlabel.h> -#include <tqhgroupbox.h> -#include <tqvgroupbox.h> -#include <tqvbuttongroup.h> -#include <tqwhatsthis.h> -#include <tqheader.h> - -#include <kdialog.h> -#include <ksimpleconfig.h> -#include <klocale.h> - -#include "tdm-conv.h" - -extern KSimpleConfig *config; - -TDMConvenienceWidget::TDMConvenienceWidget(TQWidget *parent, const char *name) - : TQWidget(parent, name) -{ - TQString wtstr; - - TQLabel *paranoia = new TQLabel( i18n("<qt><center><font color=red><big><b>Attention!<br>Read help!</b></big></font></center></qt>"), this ); - - TQSizePolicy vpref( TQSizePolicy::Minimum, TQSizePolicy::Fixed ); - - alGroup = new TQVGroupBox( i18n("Enable Au&to-Login"), this ); - alGroup->setCheckable( true ); - alGroup->setSizePolicy( vpref ); - - TQWhatsThis::add( alGroup, i18n("Turn on the auto-login feature." - " This applies only to TDM's graphical login." - " Think twice before enabling this!") ); - connect(alGroup, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged())); - - TQWidget *hlpw1 = new TQWidget( alGroup ); - userlb = new KComboBox( hlpw1 ); - u_label = new TQLabel( userlb, i18n("Use&r:"), hlpw1 ); - TQGridLayout *hlpl1 = new TQGridLayout(hlpw1, 2, 2, 0, KDialog::spacingHint()); - hlpl1->setColStretch(2, 1); - hlpl1->addWidget(u_label, 0, 0); - hlpl1->addWidget(userlb, 0, 1); - connect(userlb, TQT_SIGNAL(highlighted(int)), TQT_SLOT(slotChanged())); - wtstr = i18n("Select the user to be logged in automatically."); - TQWhatsThis::add( u_label, wtstr ); - TQWhatsThis::add( userlb, wtstr ); - delaysb = new TQSpinBox( 0, 3600, 5, hlpw1 ); - delaysb->setSpecialValueText( i18n("delay", "none") ); - delaysb->setSuffix( i18n("seconds", " s") ); - d_label = new TQLabel( delaysb, i18n("D&elay:"), hlpw1 ); - hlpl1->addWidget(d_label, 1, 0); - hlpl1->addWidget(delaysb, 1, 1); - connect(delaysb, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotChanged())); - wtstr = i18n("The delay (in seconds) before the automatic login kicks in. " - "This feature is also known as \"timed login\"."); - TQWhatsThis::add( d_label, wtstr ); - TQWhatsThis::add( delaysb, wtstr ); - againcb = new TQCheckBox( i18n("P&ersistent"), alGroup ); - connect( againcb, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged()) ); - TQWhatsThis::add( againcb, i18n("Normally, automatic login is performed only " - "when TDM starts up. If this is checked, automatic login will kick in " - "after finishing a session as well.") ); - autoLockCheck = new TQCheckBox( i18n("Loc&k session"), alGroup ); - connect( autoLockCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged()) ); - TQWhatsThis::add( autoLockCheck, i18n("If checked, the automatically started session " - "will be locked immediately (provided it is a KDE session). This can " - "be used to obtain a super-fast login restricted to one user.") ); - - - puGroup = new TQVButtonGroup(i18n("Preselect User"), this ); - puGroup->setSizePolicy( vpref ); - - connect(puGroup, TQT_SIGNAL(clicked(int)), TQT_SLOT(slotPresChanged())); - connect(puGroup, TQT_SIGNAL(clicked(int)), TQT_SLOT(slotChanged())); - npRadio = new TQRadioButton(i18n("preselected user", "&None"), puGroup); - ppRadio = new TQRadioButton(i18n("Prev&ious"), puGroup); - TQWhatsThis::add( ppRadio, i18n("Preselect the user that logged in previously. " - "Use this if this computer is usually used several consecutive times by one user.") ); - spRadio = new TQRadioButton(i18n("Specif&y"), puGroup); - TQWhatsThis::add( spRadio, i18n("Preselect the user specified in the combo box below. " - "Use this if this computer is predominantly used by a certain user.") ); - TQWidget *hlpw = new TQWidget(puGroup); - puserlb = new KComboBox(true, hlpw); - pu_label = new TQLabel(puserlb, i18n("Us&er:"), hlpw); - connect(puserlb, TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT(slotChanged())); - wtstr = i18n("Select the user to be preselected for login. " - "This box is editable, so you can specify an arbitrary non-existent " - "user to mislead possible attackers."); - TQWhatsThis::add( pu_label, wtstr ); - TQWhatsThis::add( puserlb, wtstr ); - TQBoxLayout *hlpl = new TQHBoxLayout(hlpw, 0, KDialog::spacingHint()); - hlpl->addWidget(pu_label); - hlpl->addWidget(puserlb); - hlpl->addStretch( 1 ); - cbjumppw = new TQCheckBox(i18n("Focus pass&word"), puGroup); - TQWhatsThis::add( cbjumppw, i18n("When this option is on, TDM will place the cursor " - "in the password field instead of the user field after preselecting a user. " - "Use this to save one key press per login, if the preselection usually does not need to " - "be changed.") ); - connect(cbjumppw, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged())); - - npGroup = new TQVGroupBox(i18n("Enable Password-&Less Logins"), this ); - npGroup->setCheckable( true ); - - TQWhatsThis::add( npGroup, i18n("When this option is checked, the checked users from" - " the list below will be allowed to log in without entering their" - " password. This applies only to TDM's graphical login." - " Think twice before enabling this!") ); - - connect(npGroup, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged())); - - pl_label = new TQLabel(i18n("No password re&quired for:"), npGroup); - npuserlv = new KListView(npGroup); - pl_label->setBuddy(npuserlv); - npuserlv->addColumn(TQString::null); - npuserlv->header()->hide(); - npuserlv->setResizeMode(TQListView::LastColumn); - TQWhatsThis::add(npuserlv, i18n("Check all users you want to allow a password-less login for." - " Entries denoted with '@' are user groups. Checking a group is like checking all users in that group.")); - connect( npuserlv, TQT_SIGNAL(clicked( TQListViewItem * )), - TQT_SLOT(slotChanged()) ); - - btGroup = new TQVGroupBox( i18n("Miscellaneous"), this ); - - cbarlen = new TQCheckBox(i18n("Automatically log in again after &X server crash"), btGroup); - TQWhatsThis::add( cbarlen, i18n("When this option is on, a user will be" - " logged in again automatically when their session is interrupted by an" - " X server crash; note that this can open a security hole: if you use" - " a screen locker than KDE's integrated one, this will make" - " circumventing a password-secured screen lock possible.") ); - connect(cbarlen, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged())); - - TQGridLayout *main = new TQGridLayout(this, 5, 2, 10); - main->addWidget(paranoia, 0, 0); - main->addWidget(alGroup, 1, 0); - main->addWidget(puGroup, 2, 0); - main->addMultiCellWidget(npGroup, 0,3, 1,1); - main->addMultiCellWidget(btGroup, 4,4, 0,1); - main->setColStretch(0, 1); - main->setColStretch(1, 2); - main->setRowStretch(3, 1); - - connect( userlb, TQT_SIGNAL(activated( const TQString & )), - TQT_SLOT(slotSetAutoUser( const TQString & )) ); - connect( puserlb, TQT_SIGNAL(textChanged( const TQString & )), - TQT_SLOT(slotSetPreselUser( const TQString & )) ); - connect( npuserlv, TQT_SIGNAL(clicked( TQListViewItem * )), - TQT_SLOT(slotUpdateNoPassUser( TQListViewItem * )) ); - -} - -void TDMConvenienceWidget::makeReadOnly() -{ - ((TQWidget*)alGroup->child("qt_groupbox_checkbox"))->setEnabled(false); - userlb->setEnabled(false); - delaysb->setEnabled(false); - againcb->setEnabled(false); - autoLockCheck->setEnabled(false); - ((TQWidget*)npGroup->child("qt_groupbox_checkbox"))->setEnabled(false); - npuserlv->setEnabled(false); - cbarlen->setEnabled(false); - npRadio->setEnabled(false); - ppRadio->setEnabled(false); - spRadio->setEnabled(false); - puserlb->setEnabled(false); - cbjumppw->setEnabled(false); -} - -void TDMConvenienceWidget::slotPresChanged() -{ - bool en = spRadio->isChecked(); - pu_label->setEnabled(en); - puserlb->setEnabled(en); - cbjumppw->setEnabled(!npRadio->isChecked()); -} - -void TDMConvenienceWidget::save() -{ - config->setGroup("X-:0-Core"); - config->writeEntry( "AutoLoginEnable", alGroup->isChecked() ); - config->writeEntry( "AutoLoginUser", userlb->currentText() ); - config->writeEntry( "AutoLoginDelay", delaysb->value() ); - config->writeEntry( "AutoLoginAgain", againcb->isChecked() ); - config->writeEntry( "AutoLoginLocked", autoLockCheck->isChecked() ); - - config->setGroup("X-:*-Core"); - config->writeEntry( "NoPassEnable", npGroup->isChecked() ); - config->writeEntry( "NoPassUsers", noPassUsers ); - - config->setGroup("X-*-Core"); - config->writeEntry( "AutoReLogin", cbarlen->isChecked() ); - - config->setGroup("X-:*-Greeter"); - config->writeEntry( "PreselectUser", npRadio->isChecked() ? "None" : - ppRadio->isChecked() ? "Previous" : - "Default" ); - config->writeEntry( "DefaultUser", puserlb->currentText() ); - config->writeEntry( "FocusPasswd", cbjumppw->isChecked() ); -} - - -void TDMConvenienceWidget::load() -{ - config->setGroup("X-:0-Core"); - bool alenable = config->readBoolEntry( "AutoLoginEnable", false); - autoUser = config->readEntry( "AutoLoginUser" ); - delaysb->setValue( config->readNumEntry( "AutoLoginDelay", 0 ) ); - againcb->setChecked( config->readBoolEntry( "AutoLoginAgain", false ) ); - autoLockCheck->setChecked( config->readBoolEntry( "AutoLoginLocked", false ) ); - if (autoUser.isEmpty()) - alenable=false; - alGroup->setChecked( alenable ); - - config->setGroup("X-:*-Core"); - npGroup->setChecked(config->readBoolEntry( "NoPassEnable", false) ); - noPassUsers = config->readListEntry( "NoPassUsers"); - - config->setGroup("X-*-Core"); - cbarlen->setChecked(config->readBoolEntry( "AutoReLogin", false) ); - - config->setGroup("X-:*-Greeter"); - TQString presstr = config->readEntry( "PreselectUser", "None" ); - if (presstr == "Previous") - ppRadio->setChecked(true); - else if (presstr == "Default") - spRadio->setChecked(true); - else - npRadio->setChecked(true); - preselUser = config->readEntry( "DefaultUser" ); - cbjumppw->setChecked(config->readBoolEntry( "FocusPasswd", false) ); - - slotPresChanged(); -} - - -void TDMConvenienceWidget::defaults() -{ - alGroup->setChecked(false); - delaysb->setValue(0); - againcb->setChecked(false); - autoLockCheck->setChecked(false); - npRadio->setChecked(true); - npGroup->setChecked(false); - cbarlen->setChecked(false); - cbjumppw->setChecked(false); - autoUser = ""; - preselUser = ""; - noPassUsers.clear(); - - slotPresChanged(); -} - - -void TDMConvenienceWidget::slotChanged() -{ - emit changed(true); -} - -void TDMConvenienceWidget::slotSetAutoUser( const TQString &user ) -{ - autoUser = user; -} - -void TDMConvenienceWidget::slotSetPreselUser( const TQString &user ) -{ - preselUser = user; -} - -void TDMConvenienceWidget::slotUpdateNoPassUser( TQListViewItem *item ) -{ - if ( !item ) - return; - TQCheckListItem *itm = (TQCheckListItem *)item; - TQStringList::iterator it = noPassUsers.find( itm->text() ); - if (itm->isOn()) { - if (it == noPassUsers.end()) - noPassUsers.append( itm->text() ); - } else { - if (it != noPassUsers.end()) - noPassUsers.remove( it ); - } -} - -void TDMConvenienceWidget::slotClearUsers() -{ - userlb->clear(); - puserlb->clear(); - npuserlv->clear(); - if (!autoUser.isEmpty()) - userlb->insertItem(autoUser); - if (!preselUser.isEmpty()) - puserlb->insertItem(preselUser); -} - -void TDMConvenienceWidget::slotAddUsers(const TQMap<TQString,int> &users) -{ - TQMapConstIterator<TQString,int> it; - for (it = users.begin(); it != users.end(); ++it) { - if (it.data() > 0) { - if (it.key() != autoUser) - userlb->insertItem(it.key()); - if (it.key() != preselUser) - puserlb->insertItem(it.key()); - } - if (it.data() != 0) - (new TQCheckListItem(npuserlv, it.key(), TQCheckListItem::CheckBox))-> - setOn(noPassUsers.find(it.key()) != noPassUsers.end()); - } - - if (userlb->listBox()) - userlb->listBox()->sort(); - - if (puserlb->listBox()) - puserlb->listBox()->sort(); - - npuserlv->sort(); - userlb->setCurrentItem(autoUser); - puserlb->setCurrentItem(preselUser); -} - -void TDMConvenienceWidget::slotDelUsers(const TQMap<TQString,int> &users) -{ - TQMapConstIterator<TQString,int> it; - for (it = users.begin(); it != users.end(); ++it) { - if (it.data() > 0) { - if (it.key() != autoUser && userlb->listBox()) - delete userlb->listBox()-> - findItem( it.key(), ExactMatch | CaseSensitive ); - if (it.key() != preselUser && puserlb->listBox()) - delete puserlb->listBox()-> - findItem( it.key(), ExactMatch | CaseSensitive ); - } - if (it.data() != 0) - delete npuserlv->findItem( it.key(), 0 ); - } -} - -#include "tdm-conv.moc" |