diff -up kde-workspace-4.11.22/kdm/kcm/kdm-users.cpp.usericon kde-workspace-4.11.22/kdm/kcm/kdm-users.cpp --- kde-workspace-4.11.22/kdm/kcm/kdm-users.cpp.usericon 2015-11-11 15:37:27.665659091 +0100 +++ kde-workspace-4.11.22/kdm/kcm/kdm-users.cpp 2015-11-11 15:38:06.765793497 +0100 @@ -89,8 +89,7 @@ KDMUsersWidget::KDMUsersWidget(QWidget * defminuid = QString::number(minUid); defmaxuid = QString::number(maxUid); - m_userPixDir = config->group("X-*-Greeter").readEntry("FaceDir", - QString(KStandardDirs::installPath("data") + "kdm/faces" + '/')); + m_userPixDir = config->group( "X-*-Greeter" ).readEntry( "FaceDir", "/usr/share/faces" ) + '/'; if (!getpwnam("nobody")) KMessageBox::sorry(this, i18n( @@ -303,11 +302,15 @@ void KDMUsersWidget::slotUserSelected() { QString user = usercombo->currentText(); QImage p; - if (user != m_defaultText && p.load(m_userPixDir + user + ".face.icon")) - rstuserbutton->setEnabled(true); + if (user != m_defaultText && p.load( m_userPixDir + user + ".png" )) + rstuserbutton->setEnabled( !getuid() ); + else if (user != m_defaultText && p.load( m_userPixDir + user )) + rstuserbutton->setEnabled( !getuid() ); + else if (user != m_defaultText && p.load( m_userPixDir + user + ".face.icon" )) + rstuserbutton->setEnabled( !getuid() ); else { - p.load(m_userPixDir + ".default.face.icon"); - rstuserbutton->setEnabled(false); + p.load( m_userPixDir + "default.png" ); + rstuserbutton->setEnabled(false); } userbutton->setIcon(QPixmap::fromImage(p.scaled(48, 48, Qt::KeepAspectRatio, Qt::SmoothTransformation))); } @@ -371,7 +374,7 @@ void KDMUsersWidget::changeUserPix(const void KDMUsersWidget::slotUserButtonClicked() { KIconDialog dlg; - dlg.setCustomLocation(KStandardDirs::installPath("data") + "kdm/pics/users"); + dlg.setCustomLocation( "/usr/share/faces" ); dlg.setup(KIconLoader::NoGroup, KIconLoader::Any, false, 48, true, true, false); QString ic = dlg.openDialog(); if (ic.isEmpty()) diff -up kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp.usericon kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp --- kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp.usericon 2015-11-11 15:37:27.665659091 +0100 +++ kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp 2015-11-11 15:38:06.765793497 +0100 @@ -323,7 +323,7 @@ KGreeter::insertUser(const QImage &defau fn += '/'; fn += ps->pw_name; } - fn += ".face.icon"; + QFile(fn + ".png").exists() ? fn += ".png" : fn += ".face.icon"; if (loadFace(fn, p, pp)) goto gotit; } while (--nd >= 0); @@ -385,11 +385,18 @@ KGreeter::insertUsers() QImage default_pix; if (userView) { - QByteArray fn = QFile::encodeName(_faceDir) + "/.default.face.icon"; - if (!loadFace(fn, default_pix, QByteArray(), true)) { - default_pix = QImage(48, 48, QImage::Format_ARGB32); - default_pix.fill(0); - } + QByteArray fn = QFile::encodeName( _faceDir + "/default.png" ); + if (!loadFace( fn, default_pix , QByteArray(), true)) + { + fn = QFile::encodeName( _faceDir + "/.default.face.icon" ); + if (!loadFace( fn, default_pix , QByteArray(), true)) + { + logError( "Cannot open default user face\n" ); + default_pix = QImage( 48, 48, QImage::Format_ARGB32 ); + default_pix.fill( 0 ); + } + } + } int realLowUserId = interpretMinUid(_lowUserId); if (_showUsers == SHOW_ALL) {