From aa347496d408431d85ff2d7a2cf60479407620af Mon Sep 17 00:00:00 2001
From: umopapisdn <umopapisdn>
Date: Sat, 28 Sep 2002 22:28:39 +0000
Subject: *** empty log message ***

---
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp
index 6940a3b..c6b8a57 100644
--- a/noncore/settings/usermanager/userdialog.cpp
+++ b/noncore/settings/usermanager/userdialog.cpp
@@ -203,6 +203,16 @@ bool UserDialog::addUser(int uid, int gid) {
 	if ( it.current()->isSelected() )
 		accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text());
 	}
+	// Copy image to pics/users/
+	if(!(adduserDialog->userImage.isNull())) {
+		QDir d;
+		if(!(d.exists("/opt/QtPalmtop/pics/users"))) {
+			d.mkdir("/opt/QtPalmtop/pics/users");
+		}
+		QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png";
+		adduserDialog->userImage=adduserDialog->userImage.smoothScale(48,48);
+		adduserDialog->userImage.save(filename,"PNG");
+	}
 	return true;
 }
 
@@ -296,6 +306,17 @@ bool UserDialog::editUser(const char *username) {
 	if ( it.current()->isSelected() )
 		accounts->addGroupMember(it.current()->text(0),edituserDialog->loginLineEdit->text());
 	}
+	
+	// Copy image to pics/users/
+	if(!(edituserDialog->userImage.isNull())) {
+		QDir d;
+		if(!(d.exists("/opt/QtPalmtop/pics/users"))) {
+			d.mkdir("/opt/QtPalmtop/pics/users");
+		}
+		QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png";
+		edituserDialog->userImage=edituserDialog->userImage.smoothScale(48,48);
+		edituserDialog->userImage.save(filename,"PNG");
+	}
 	return true;
 }
 
@@ -318,8 +339,16 @@ void UserDialog::accept() {
  */
 void UserDialog::clickedPicture() {
 	QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED,"/opt/QtPalmtop/pics");
-	// OFileDialog *fd=new OFileDialog("Select Icon",this, OFileSelector::OPEN, OFileSelector::EXTENDED,"/");
-	//fd->showMaximized();
-	//fd->exec();
-	QMessageBox::information(0,"Sorry!","Icon selection not yet implemented.\nComming real soon now! (tm)\n"+filename);
+	if(!(filename.isEmpty())) {
+		userImage.reset();
+		if(!(userImage.load(filename))) {
+			QMessageBox::information(0,"Sorry!","Icon selection not yet implemented.\nComming real soon now! (tm)\n"+filename);
+		} else {
+			userImage=userImage.smoothScale(48,48);
+			QPixmap *picture;
+			picture=(QPixmap *)picturePushButton->pixmap();
+			picture->convertFromImage(userImage,0);
+			picturePushButton->update();
+		}
+	}
 }
diff --git a/noncore/settings/usermanager/userdialog.h b/noncore/settings/usermanager/userdialog.h
index df54269..a878588 100644
--- a/noncore/settings/usermanager/userdialog.h
+++ b/noncore/settings/usermanager/userdialog.h
@@ -36,6 +36,7 @@ private:
 	
 	QStringList groupMembers;
 	QString pictureLocation;
+	QImage userImage;
 	int groupID;
 	int userID;
 	
diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp
index 87dd7f1..ed18b7f 100644
--- a/noncore/settings/usermanager/usermanager.cpp
+++ b/noncore/settings/usermanager/usermanager.cpp
@@ -73,6 +73,7 @@ void UserConfig::setupTabAccounts() {
 	
 	usersIconView=new QIconView(tabpage,"users");
 	usersIconView->setItemTextPos(QIconView::Right);
+	usersIconView->setArrangement(QIconView::LeftToRight);
 	layout->addWidget(usersIconView);
 	
 	myTabWidget->addTab(tabpage,"Users");
@@ -123,14 +124,16 @@ void UserConfig::getUsers() {
 		new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos);
 		if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) {	// Is this user a "normal" user ?
 			mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon.
-			mypixmap=Resource::loadPixmap(QString("users/"+accounts->pw_name));	// Is there an icon for this user?
-			if(mypixmap.isNull()) {
+//			mypixmap=Resource::loadPixmap(QString("users/"+accounts->pw_name));	// Is there an icon for this user? Resource::loadPixmap is caching, doesn't work.
+			if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) {
+//			if(mypixmap.isNull()) {
 				mypixmap=Resource::loadPixmap(QString("usermanager/usericon"));	// If this user has no icon, load the default icon.
 			}
 			new QIconViewItem(usersIconView,mytext,mypixmap);	// Add the icon+text to the qiconview.
 		}
 		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. 
 	}
+	usersIconView->sort();
 }
 
 void UserConfig::addUser() {
--
cgit v0.9.0.2