summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/usermanager/userdialog.cpp3
-rw-r--r--noncore/settings/usermanager/usermanager.cpp44
2 files changed, 31 insertions, 16 deletions
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp
index 9dfb2af..3654639 100644
--- a/noncore/settings/usermanager/userdialog.cpp
+++ b/noncore/settings/usermanager/userdialog.cpp
@@ -4,24 +4,25 @@
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10#include "userdialog.h" 10#include "userdialog.h"
11#include "passwd.h" 11#include "passwd.h"
12 12
13/* OPIE */ 13/* OPIE */
14#include <opie2/odebug.h> 14#include <opie2/odebug.h>
15#include <opie2/odevice.h> 15#include <opie2/odevice.h>
16#include <opie2/oresource.h>
16#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
17using namespace Opie::Core; 18using namespace Opie::Core;
18using namespace Opie::Ui; 19using namespace Opie::Ui;
19 20
20/* QT */ 21/* QT */
21#include <qlayout.h> 22#include <qlayout.h>
22#include <qlabel.h> 23#include <qlabel.h>
23#include <qmessagebox.h> 24#include <qmessagebox.h>
24#include <qfile.h> 25#include <qfile.h>
25 26
26/* STD */ 27/* STD */
27#include <sys/types.h> 28#include <sys/types.h>
@@ -69,25 +70,25 @@ UserDialog::~UserDialog()
69 */ 70 */
70void UserDialog::setupTab1() 71void UserDialog::setupTab1()
71{ 72{
72 QPixmap mypixmap; 73 QPixmap mypixmap;
73 QWidget *tabpage = new QWidget(myTabWidget,"page1"); 74 QWidget *tabpage = new QWidget(myTabWidget,"page1");
74 QVBoxLayout *layout = new QVBoxLayout(tabpage); 75 QVBoxLayout *layout = new QVBoxLayout(tabpage);
75 layout->setMargin(5); 76 layout->setMargin(5);
76 77
77 // Picture 78 // Picture
78 picturePushButton = new QPushButton(tabpage,"Label"); 79 picturePushButton = new QPushButton(tabpage,"Label");
79 picturePushButton->setMinimumSize(48,48); 80 picturePushButton->setMinimumSize(48,48);
80 picturePushButton->setMaximumSize(48,48); 81 picturePushButton->setMaximumSize(48,48);
81 picturePushButton->setPixmap(Resource::loadPixmap("usermanager/usericon")); // Load default usericon. 82 picturePushButton->setPixmap(Opie::Core::OResource::loadPixmap("usermanager/usericon")); // Load default usericon.
82 connect(picturePushButton,SIGNAL(clicked()),this,SLOT(clickedPicture())); // Clicking the picture should invoke pictureselector. 83 connect(picturePushButton,SIGNAL(clicked()),this,SLOT(clickedPicture())); // Clicking the picture should invoke pictureselector.
83 84
84 // Login 85 // Login
85 QLabel *loginLabel=new QLabel(tabpage,"Login: "); 86 QLabel *loginLabel=new QLabel(tabpage,"Login: ");
86 loginLabel->setText("Login: "); 87 loginLabel->setText("Login: ");
87 loginLineEdit=new QLineEdit(tabpage,"Login: "); 88 loginLineEdit=new QLineEdit(tabpage,"Login: ");
88 89
89 // UID 90 // UID
90 QLabel *uidLabel=new QLabel(tabpage,"uid: "); 91 QLabel *uidLabel=new QLabel(tabpage,"uid: ");
91 uidLabel->setText("UserID: "); 92 uidLabel->setText("UserID: ");
92 uidLineEdit=new QLineEdit(tabpage,"uid: "); 93 uidLineEdit=new QLineEdit(tabpage,"uid: ");
93 uidLineEdit->setEnabled(false); 94 uidLineEdit->setEnabled(false);
diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp
index 1d345ee..2c046b1 100644
--- a/noncore/settings/usermanager/usermanager.cpp
+++ b/noncore/settings/usermanager/usermanager.cpp
@@ -2,62 +2,76 @@
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10#include "usermanager.h" 10#include "usermanager.h"
11 11
12/* OPIE */ 12/* OPIE */
13#include <opie2/odebug.h> 13#include <opie2/odebug.h>
14#include <qpe/resource.h> 14#include <opie2/oresource.h>
15using namespace Opie::Core; 15using namespace Opie::Core;
16 16#include <qpe/qpeapplication.h>
17/* QT */ 17/* QT */
18#include <qlayout.h> 18#include <qlayout.h>
19#include <qmessagebox.h> 19#include <qmessagebox.h>
20#include <qfile.h> 20#include <qfile.h>
21#include <qregexp.h> 21#include <qregexp.h>
22 22
23/** 23/**
24 * The mainwindow constructor. 24 * The mainwindow constructor.
25 * 25 *
26 * @param QWidget *parent 26 * @param QWidget *parent
27 * @param const char *name 27 * @param const char *name
28 * @ param WFlags fl 28 * @ param WFlags fl
29 * 29 *
30 */ 30 */
31UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { 31UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) {
32 setCaption(tr("Opie User Manager")); 32 setCaption(tr("Opie User Manager"));
33 33
34 // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them. 34 // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them.
35 accounts=new Passwd(); 35 accounts=new Passwd();
36 accounts->open();// This actually loads the files /etc/passwd & /etc/group into memory. 36 accounts->open();// This actually loads the files /etc/passwd & /etc/group into memory.
37 37
38 // Create the toolbar. 38 // Create the toolbar.
39 setToolBarsMovable( false );
40 bool useBigIcon = qApp->desktop()->size().width() > 330;
39 QToolBar *toolbar = new QToolBar(this,"Toolbar"); 41 QToolBar *toolbar = new QToolBar(this,"Toolbar");
40 toolbar->setHorizontalStretchable(1); // Is there any other way to get the toolbar to stretch of the full screen!? 42 toolbar->setHorizontalStretchable( true );
41 adduserToolButton = new QToolButton(Resource::loadPixmap("usermanager/adduser"),"Add User",0,this,SLOT(addUser()),toolbar,"Add User"); 43 adduserToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/adduser", Opie::Core::OResource::SmallIcon),
42 edituserToolButton = new QToolButton(Resource::loadPixmap("usermanager/edituser"),"Edit User",0,this,SLOT(editUser()),toolbar,"Edit User"); 44 "Add User",0,this,SLOT(addUser()),toolbar,"Add User");
43 deleteuserToolButton = new QToolButton(Resource::loadPixmap("usermanager/deleteuser"),"Delete User",0,this,SLOT(delUser()),toolbar,"Delete User"); 45 adduserToolButton->setUsesBigPixmap( useBigIcon );
44 QToolButton *userstext = new QToolButton(0,"User",0,0,0,toolbar,"User"); 46 edituserToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/edituser", Opie::Core::OResource::SmallIcon),
45 userstext->setUsesTextLabel(true); 47 "Edit User",0,this,SLOT(editUser()),toolbar,"Edit User");
48 edituserToolButton->setUsesBigPixmap( useBigIcon );
49 deleteuserToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/deleteuser", Opie::Core::OResource::SmallIcon),
50 "Delete User",0,this,SLOT(delUser()),toolbar,"Delete User");
51 deleteuserToolButton->setUsesBigPixmap( useBigIcon );
52 //QToolButton *userstext = new QToolButton(0,"User",0,0,0,toolbar,"User");
53 //userstext->setUsesTextLabel(true);
46 toolbar->addSeparator(); 54 toolbar->addSeparator();
47 addgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/addgroup"),"Add Group",0,this,SLOT(addGroup()),toolbar,"Add Group"); 55 addgroupToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/addgroup", Opie::Core::OResource::SmallIcon),
48 editgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/editgroup"),"Edit Group",0,this,SLOT(editGroup()),toolbar,"Edit Group"); 56 "Add Group",0,this,SLOT(addGroup()),toolbar,"Add Group");
49 deletegroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/deletegroup"),"Delete Group",0,this,SLOT(delGroup()),toolbar,"Delete Group"); 57 addgroupToolButton->setUsesBigPixmap( useBigIcon );
50 QToolButton *groupstext = new QToolButton(0,"Group",0,0,0,toolbar,"Group"); 58 editgroupToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/editgroup", Opie::Core::OResource::SmallIcon),
51 groupstext->setUsesTextLabel(true); 59 "Edit Group",0,this,SLOT(editGroup()),toolbar,"Edit Group");
60 editgroupToolButton->setUsesBigPixmap( useBigIcon );
61 deletegroupToolButton = new QToolButton(Opie::Core::OResource::loadPixmap("usermanager/deletegroup", Opie::Core::OResource::SmallIcon),
62 "Delete Group",0,this,SLOT(delGroup()),toolbar,"Delete Group");
63 deletegroupToolButton->setUsesBigPixmap( useBigIcon );
64 //QToolButton *groupstext = new QToolButton(0,"Group",0,0,0,toolbar,"Group");
65 //groupstext->setUsesTextLabel(true);
52 addToolBar(toolbar,"myToolBar"); 66 addToolBar(toolbar,"myToolBar");
53 67
54 // Add a tabwidget and all the tabs. 68 // Add a tabwidget and all the tabs.
55 myTabWidget = new QTabWidget(this,"My Tab Widget"); 69 myTabWidget = new QTabWidget(this,"My Tab Widget");
56 setupTabAccounts(); 70 setupTabAccounts();
57 setupTabAllUsers(); 71 setupTabAllUsers();
58 setupTabAllGroups(); 72 setupTabAllGroups();
59 userPopupMenu.insertItem("Copy",0); 73 userPopupMenu.insertItem("Copy",0);
60 74
61 getUsers(); // Fill out the iconview & listview with all users. 75 getUsers(); // Fill out the iconview & listview with all users.
62 getGroups(); // Fill out the group listview with all groups. 76 getGroups(); // Fill out the group listview with all groups.
63 77
@@ -123,26 +137,26 @@ void UserConfig::getUsers() {
123 // Empty the iconview & the listview. 137 // Empty the iconview & the listview.
124 usersIconView->clear(); 138 usersIconView->clear();
125 usersListView->clear(); 139 usersListView->clear();
126 140
127 // availableUID is used as a deposite for the next available UID on the system, this should start at an ID over 500. 141 // availableUID is used as a deposite for the next available UID on the system, this should start at an ID over 500.
128 availableUID=500; 142 availableUID=500;
129 for(QStringList::Iterator it=accounts->passwdStringList.begin(); it!=accounts->passwdStringList.end(); ++it) { 143 for(QStringList::Iterator it=accounts->passwdStringList.begin(); it!=accounts->passwdStringList.end(); ++it) {
130 accounts->splitPasswdEntry(*it); // Split the string into it's components and store in variables in the accounts object. ("pr_name" and so on.) 144 accounts->splitPasswdEntry(*it); // Split the string into it's components and store in variables in the accounts object. ("pr_name" and so on.)
131 if(accounts->pw_name.find(QRegExp("^#"),0)) {// Skip commented lines. 145 if(accounts->pw_name.find(QRegExp("^#"),0)) {// Skip commented lines.
132 new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos); 146 new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos);
133 if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) {// Is this user a "normal" user ? 147 if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) {// Is this user a "normal" user ?
134 mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon. 148 mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon.
135 if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Resource::loadPixmap is caching, doesn't work. 149 if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Opie::Core::OResource::loadPixmap is caching, doesn't work.
136 mypixmap=Resource::loadPixmap(QString("usermanager/usericon"));// If this user has no icon, load the default icon. 150 mypixmap=Opie::Core::OResource::loadPixmap("usermanager/usericon", Opie::Core::OResource::SmallIcon);// If this user has no icon, load the default icon.
137 } 151 }
138 listviewitem=new QListViewItem(usersIconView,"",mytext);// Add the icon+text to the qiconview. 152 listviewitem=new QListViewItem(usersIconView,"",mytext);// Add the icon+text to the qiconview.
139 listviewitem->setPixmap(0,mypixmap); 153 listviewitem->setPixmap(0,mypixmap);
140 } 154 }
141 if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid. 155 if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid.
142 } 156 }
143 } 157 }
144 usersIconView->sort(); 158 usersIconView->sort();
145} 159}
146 160
147void UserConfig::addUser() { 161void UserConfig::addUser() {
148 if(UserDialog::addUser(availableUID,availableGID)) {// Add the user to the system, also send next available UID and GID. 162 if(UserDialog::addUser(availableUID,availableGID)) {// Add the user to the system, also send next available UID and GID.