diff -u -r kcontrol/kdm.orig/kdm-users.cpp kcontrol/kdm/kdm-users.cpp --- kcontrol/kdm.orig/kdm-users.cpp 2008-08-28 13:12:26.000000000 -0300 +++ kcontrol/kdm/kdm-users.cpp 2009-02-25 16:38:42.000000000 -0300 @@ -87,7 +87,7 @@ // We assume that $kde_datadir/kdm exists, but better check for pics/ and pics/users, // and create them if necessary. - m_userPixDir = config->group( "X-*-Greeter" ).readEntry( "FaceDir", KStandardDirs::installPath( "data" ) + "kdm/faces" ) + '/'; + m_userPixDir = config->group( "X-*-Greeter" ).readEntry( "FaceDir", "/usr/share/faces" ) + '/'; QDir testDir( m_userPixDir ); if (!testDir.exists() && !testDir.mkdir( testDir.absolutePath() ) && !geteuid()) KMessageBox::sorry( this, i18n("Unable to create folder %1", testDir.absolutePath() ) ); @@ -324,10 +324,15 @@ { QString user = usercombo->currentText(); QImage p; - if (user != m_defaultText && p.load( m_userPixDir + user + ".face.icon" )) + + 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" ); + p.load( m_userPixDir + "default.png" ); rstuserbutton->setEnabled( false ); } userbutton->setIcon( QPixmap::fromImage( p.scaled( 48, 48, Qt::KeepAspectRatio, Qt::SmoothTransformation ) ) ); @@ -364,7 +369,7 @@ 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()) Somente em kcontrol/kdm: kdm-users.cpp~ --- kdm/kfrontend/kgreeter.cpp.orig 2009-03-04 12:58:57.000000000 -0300 +++ kdm/kfrontend/kgreeter.cpp 2009-03-04 13:25:35.000000000 -0300 @@ -288,13 +288,17 @@ QByteArray fn = !dp ? QByteArray( ps->pw_dir ) + '/' : QFile::encodeName( _faceDir + '/' + username ); - fn += ".face.icon"; - if (loadFace( fn, p )) - goto gotit; + QByteArray ftmp = fn + ".png"; + if ( nd == 1 ) + if (loadFace( ftmp, p )) + break; + ftmp = fn + ".face.icon"; + if (loadFace( ftmp, p )) + break; + p = default_pix; } while (--nd >= 0); - p = default_pix; - gotit: - QString realname = KStringHandler::from8Bit( ps->pw_gecos ); + + QString realname = KStringHandler::from8Bit( ps->pw_gecos ); realname.truncate( realname.indexOf( ',' ) & (~0U >> 1) ); if (realname.isEmpty() || realname == username) new UserListViewItem( userView, username, QPixmap::fromImage( p ), username ); @@ -348,13 +352,18 @@ QImage default_pix; if (userView) { - QByteArray fn = QFile::encodeName( _faceDir + "/.default.face.icon" ); - if (!loadFace( fn, default_pix )) { - logError( "Cannot open default user face\n" ); - default_pix = QImage( 48, 48, QImage::Format_ARGB32 ); - default_pix.fill( 0 ); - } - } + QByteArray fn = QFile::encodeName( _faceDir + "/default.png" ); + if (!loadFace( fn, default_pix )) + { + fn = QFile::encodeName( _faceDir + "/.default.face.icon" ); + if (!loadFace( fn, default_pix )) + { + logError( "Cannot open default user face\n" ); + default_pix = QImage( 48, 48, QImage::Format_ARGB32 ); + default_pix.fill( 0 ); + } + } + } if (_showUsers == SHOW_ALL) { UserList noUsers( _noUsers ); QSet<QString> dupes;