summaryrefslogtreecommitdiff
path: root/noncore/settings/usermanager/userdialog.cpp
Unidiff
Diffstat (limited to 'noncore/settings/usermanager/userdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/usermanager/userdialog.cpp35
1 files changed, 21 insertions, 14 deletions
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp
index 36bcf86..c82cc9d 100644
--- a/noncore/settings/usermanager/userdialog.cpp
+++ b/noncore/settings/usermanager/userdialog.cpp
@@ -29,13 +29,14 @@ using namespace Opie;
29 29
30 30
31/** 31/**
32 * UserDialog constructor. Setup the dialog, fill the groupComboBox & groupsListView with all groups. 32 * UserDialog constructor. Setup the dialog, fill the groupComboBox & groupsListView with all groups.
33 * 33 *
34 */ 34 */
35UserDialog::UserDialog(QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl) { 35UserDialog::UserDialog(int viewmode, QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl) {
36 vm=viewmode;
36 QVBoxLayout *layout = new QVBoxLayout(this); 37 QVBoxLayout *layout = new QVBoxLayout(this);
37 myTabWidget=new QTabWidget(this,"User Tab Widget"); 38 myTabWidget=new QTabWidget(this,"User Tab Widget");
38 layout->addWidget(myTabWidget); 39 layout->addWidget(myTabWidget);
39 setupTab1(); 40 setupTab1();
40 setupTab2(); 41 setupTab2();
41 42
@@ -106,19 +107,19 @@ void UserDialog::setupTab1() {
106 107
107 // Primary Group 108 // Primary Group
108 QLabel *groupLabel=new QLabel(tabpage,"group"); 109 QLabel *groupLabel=new QLabel(tabpage,"group");
109 groupLabel->setText("Primary group: "); 110 groupLabel->setText("Primary group: ");
110 groupComboBox=new QComboBox(tabpage,"PrimaryGroup"); 111 groupComboBox=new QComboBox(tabpage,"PrimaryGroup");
111 112
112 // Copy /etc/skel 113 if(vm==VIEWMODE_NEW) {
113 QLabel *skelLabel=new QLabel(tabpage,"skel"); 114 // Copy /etc/skel
114 skelLabel->setText("Copy /etc/skel: "); 115 skelLabel=new QLabel(tabpage,"skel");
115 skelCheckBox=new QCheckBox(tabpage); 116 skelLabel->setText("Copy /etc/skel: ");
116 skelCheckBox->setChecked(true); 117 skelCheckBox=new QCheckBox(tabpage);
117 //skelLabel->setDisabled(true); 118 skelCheckBox->setChecked(true);
118 //skelCheckBox->setDisabled(true); 119 }
119 120
120 // Widget layout 121 // Widget layout
121 QHBoxLayout *hlayout=new QHBoxLayout(-1,"hlayout"); 122 QHBoxLayout *hlayout=new QHBoxLayout(-1,"hlayout");
122 layout->addWidget(picturePushButton); 123 layout->addWidget(picturePushButton);
123 layout->addSpacing(5); 124 layout->addSpacing(5);
124 layout->addLayout(hlayout); 125 layout->addLayout(hlayout);
@@ -133,28 +134,32 @@ void UserDialog::setupTab1() {
133 vlayout1->addSpacing(5); 134 vlayout1->addSpacing(5);
134 vlayout1->addWidget(passwordLabel); 135 vlayout1->addWidget(passwordLabel);
135 vlayout1->addSpacing(5); 136 vlayout1->addSpacing(5);
136 vlayout1->addWidget(shellLabel); 137 vlayout1->addWidget(shellLabel);
137 vlayout1->addSpacing(5); 138 vlayout1->addSpacing(5);
138 vlayout1->addWidget(groupLabel); 139 vlayout1->addWidget(groupLabel);
139 vlayout1->addSpacing(5); 140 if(vm==VIEWMODE_NEW) {
140 vlayout1->addWidget(skelLabel); 141 vlayout1->addSpacing(5);
142 vlayout1->addWidget(skelLabel);
143 }
141 // Second column, data 144 // Second column, data
142 vlayout2->addWidget(loginLineEdit); 145 vlayout2->addWidget(loginLineEdit);
143 vlayout2->addSpacing(5); 146 vlayout2->addSpacing(5);
144 vlayout2->addWidget(uidLineEdit); 147 vlayout2->addWidget(uidLineEdit);
145 vlayout2->addSpacing(5); 148 vlayout2->addSpacing(5);
146 vlayout2->addWidget(gecosLineEdit); 149 vlayout2->addWidget(gecosLineEdit);
147 vlayout2->addSpacing(5); 150 vlayout2->addSpacing(5);
148 vlayout2->addWidget(passwordLineEdit); 151 vlayout2->addWidget(passwordLineEdit);
149 vlayout2->addSpacing(5); 152 vlayout2->addSpacing(5);
150 vlayout2->addWidget(shellComboBox); 153 vlayout2->addWidget(shellComboBox);
151 vlayout2->addSpacing(5); 154 vlayout2->addSpacing(5);
152 vlayout2->addWidget(groupComboBox); 155 vlayout2->addWidget(groupComboBox);
153 vlayout2->addSpacing(5); 156 if(vm==VIEWMODE_NEW) {
154 vlayout2->addWidget(skelCheckBox); 157 vlayout2->addSpacing(5);
158 vlayout2->addWidget(skelCheckBox);
159 }
155 hlayout->addLayout(vlayout1); 160 hlayout->addLayout(vlayout1);
156 hlayout->addLayout(vlayout2); 161 hlayout->addLayout(vlayout2);
157 162
158 myTabWidget->addTab(tabpage,"User Info"); 163 myTabWidget->addTab(tabpage,"User Info");
159} 164}
160 165
@@ -193,13 +198,14 @@ void UserDialog::setupTab2() {
193 */ 198 */
194bool UserDialog::addUser(int uid, int gid) { 199bool UserDialog::addUser(int uid, int gid) {
195 QCheckListItem *temp; 200 QCheckListItem *temp;
196 QFile ozTest; 201 QFile ozTest;
197 int oz=false; 202 int oz=false;
198 if(ODevice::inst()->system()==System_OpenZaurus) oz=true; 203 if(ODevice::inst()->system()==System_OpenZaurus) oz=true;
199 UserDialog *adduserDialog=new UserDialog(); 204 // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating adduserDialog's widgets here.
205 UserDialog *adduserDialog=new UserDialog(VIEWMODE_NEW);
200 adduserDialog->setCaption(tr("Add User")); 206 adduserDialog->setCaption(tr("Add User"));
201 adduserDialog->userID=uid;// Set next available UID as default uid. 207 adduserDialog->userID=uid;// Set next available UID as default uid.
202 adduserDialog->groupID=gid;// Set next available GID as default gid. 208 adduserDialog->groupID=gid;// Set next available GID as default gid.
203 // Insert default group into groupComboBox 209 // Insert default group into groupComboBox
204 adduserDialog->groupComboBox->insertItem("<create new group>",0); 210 adduserDialog->groupComboBox->insertItem("<create new group>",0);
205 adduserDialog->uidLineEdit->setText(QString::number(uid)); 211 adduserDialog->uidLineEdit->setText(QString::number(uid));
@@ -295,13 +301,14 @@ bool UserDialog::delUser(const char *username) {
295 * 301 *
296 * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>. 302 * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>.
297 * 303 *
298 */ 304 */
299bool UserDialog::editUser(const char *username) { 305bool UserDialog::editUser(const char *username) {
300 int invalid_group=0; 306 int invalid_group=0;
301 UserDialog *edituserDialog=new UserDialog();// Create Dialog 307 // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating edituserDialog's widgets here.
308 UserDialog *edituserDialog=new UserDialog(VIEWMODE_EDIT);// Create Dialog
302 edituserDialog->setCaption(tr("Edit User")); 309 edituserDialog->setCaption(tr("Edit User"));
303 accounts->findUser(username);// Locate user in database and fill variables in 'accounts' object. 310 accounts->findUser(username);// Locate user in database and fill variables in 'accounts' object.
304 if(!(accounts->findGroup(accounts->pw_gid))) {// Locate the user's primary group, and fill group variables in 'accounts' object. 311 if(!(accounts->findGroup(accounts->pw_gid))) {// Locate the user's primary group, and fill group variables in 'accounts' object.
305 invalid_group=1; 312 invalid_group=1;
306 } 313 }
307 // Fill widgets with userinfo. 314 // Fill widgets with userinfo.