summaryrefslogtreecommitdiff
path: root/noncore/settings/usermanager/userdialog.cpp
authorumopapisdn <umopapisdn>2002-09-30 18:11:33 (UTC)
committer umopapisdn <umopapisdn>2002-09-30 18:11:33 (UTC)
commitd49bd63f3b15795a1ee2497960f00eb3fb075e69 (patch) (side-by-side diff)
tree44459a473faadc66288822f43146af817bac124e /noncore/settings/usermanager/userdialog.cpp
parent096eb52cfbb50fefbe6679fb91e926346ff3c9d7 (diff)
downloadopie-d49bd63f3b15795a1ee2497960f00eb3fb075e69.zip
opie-d49bd63f3b15795a1ee2497960f00eb3fb075e69.tar.gz
opie-d49bd63f3b15795a1ee2497960f00eb3fb075e69.tar.bz2
Primary group combobox is sorted.
Deleting a primary group for a user sets the primarygroup combobox to <Undefined group> not an arbitrary group.
Diffstat (limited to 'noncore/settings/usermanager/userdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/usermanager/userdialog.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp
index b7827a4..90e27d5 100644
--- a/noncore/settings/usermanager/userdialog.cpp
+++ b/noncore/settings/usermanager/userdialog.cpp
@@ -35,12 +35,11 @@ UserDialog::UserDialog(QWidget* parent, const char* name, bool modal, WFlags fl)
setupTab2();
+ accounts->groupStringList.sort();
// And also fill the listview & the combobox with all available groups.
for( QStringList::Iterator it = accounts->groupStringList.begin(); it!=accounts->groupStringList.end(); ++it) {
accounts->splitGroupEntry(*it);
- //new QListViewItem(groupsListView,accounts->gr_name);
new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox);
groupComboBox->insertItem(accounts->gr_name);
}
-
showMaximized();
}
@@ -106,5 +105,13 @@ void UserDialog::setupTab1() {
groupComboBox=new QComboBox(tabpage,"PrimaryGroup");
- // Widget layout
+ // Copy /etc/skel
+ QLabel *skelLabel=new QLabel(tabpage,"skel");
+ skelLabel->setText("Copy /etc/skel: ");
+ skelCheckBox=new QCheckBox(tabpage);
+ skelCheckBox->setChecked(true);
+ skelLabel->setDisabled(true);
+ skelCheckBox->setDisabled(true);
+
+ // Widget layout
QHBoxLayout *hlayout=new QHBoxLayout(-1,"hlayout");
layout->addWidget(picturePushButton);
@@ -125,4 +132,6 @@ void UserDialog::setupTab1() {
vlayout1->addSpacing(5);
vlayout1->addWidget(groupLabel);
+ vlayout1->addSpacing(5);
+ vlayout1->addWidget(skelLabel);
// Second column, data
vlayout2->addWidget(loginLineEdit);
@@ -137,4 +146,6 @@ void UserDialog::setupTab1() {
vlayout2->addSpacing(5);
vlayout2->addWidget(groupComboBox);
+ vlayout2->addSpacing(5);
+ vlayout2->addWidget(skelCheckBox);
hlayout->addLayout(vlayout1);
hlayout->addLayout(vlayout2);
@@ -249,8 +260,11 @@ bool UserDialog::delUser(const char *username) {
*/
bool UserDialog::editUser(const char *username) {
+ int invalid_group=0;
UserDialog *edituserDialog=new UserDialog(); // Create Dialog
edituserDialog->setCaption(tr("Edit User"));
accounts->findUser(username); // Locate user in database and fill variables in 'accounts' object.
- accounts->findGroup(accounts->pw_gid); // Locate the user's primary group, and fill group variables in 'accounts' object.
+ if(!(accounts->findGroup(accounts->pw_gid))) { // Locate the user's primary group, and fill group variables in 'accounts' object.
+ invalid_group=1;
+ }
// Fill widgets with userinfo.
edituserDialog->loginLineEdit->setText(accounts->pw_name);
@@ -268,6 +282,11 @@ bool UserDialog::editUser(const char *username) {
if(accounts->gr_name==edituserDialog->groupComboBox->text(i)) {
edituserDialog->groupComboBox->setCurrentItem(i);
+ break;
}
}
+ if(invalid_group) {
+ edituserDialog->groupComboBox->insertItem("<Undefined group>",0);
+ edituserDialog->groupComboBox->setCurrentItem(0);
+ }
// Select the groups in the listview, to which the user belongs.
QCheckListItem *temp;
@@ -293,6 +312,7 @@ bool UserDialog::editUser(const char *username) {
// Set all variables in accounts object, that will be used when calling 'updateUser()'
accounts->pw_uid=edituserDialog->uidLineEdit->text().toInt();
- accounts->findGroup(edituserDialog->groupComboBox->currentText()); // Fill all group variables in 'accounts' object.
- accounts->pw_gid=accounts->gr_gid;
+ if(accounts->findGroup(edituserDialog->groupComboBox->currentText())) { // Fill all group variables in 'accounts' object.
+ accounts->pw_gid=accounts->gr_gid; // Only do this if the group is a valid group (ie. "<Undefined group>"), otherwise keep the old group.
+ }
accounts->pw_gecos=edituserDialog->gecosLineEdit->text();
accounts->pw_shell=edituserDialog->shellComboBox->currentText();