-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 37 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.h | 1 | ||||
-rw-r--r-- | noncore/settings/usermanager/usermanager.cpp | 7 |
3 files changed, 39 insertions, 6 deletions
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 @@ -204,4 +204,14 @@ bool UserDialog::addUser(int uid, int gid) { 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; } @@ -297,4 +307,15 @@ bool UserDialog::editUser(const char *username) { 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; } @@ -319,7 +340,15 @@ 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 @@ -37,4 +37,5 @@ 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 @@ -74,4 +74,5 @@ void UserConfig::setupTabAccounts() { usersIconView=new QIconView(tabpage,"users"); usersIconView->setItemTextPos(QIconView::Right); + usersIconView->setArrangement(QIconView::LeftToRight); layout->addWidget(usersIconView); @@ -124,6 +125,7 @@ void UserConfig::getUsers() { 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. } @@ -132,4 +134,5 @@ void UserConfig::getUsers() { 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(); } |