File kdebase-workspace-4.2.95-mdvusericons.patch of Package kdebase4-workspace
Index: kcontrol/kdm/kdm-users.cpp
===================================================================
--- kcontrol/kdm/kdm-users.cpp
+++ kcontrol/kdm/kdm-users.cpp 2009-06-27 01:41:24.000000000 +0200
@@ -88,7 +88,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() ) );
@@ -325,10 +325,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 ) ) );
@@ -365,7 +370,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())
--- kdm/kfrontend/kgreeter.cpp 2009-10-19 21:58:01.000000000 +0200
+++ kdm/kfrontend/kgreeter.cpp 2009-10-19 21:41:41.000000000 +0200
@@ -318,13 +318,16 @@
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);
+
+ } while (--nd >= 0);
p = default_pix;
- gotit:
- QString realname = KStringHandler::from8Bit( ps->pw_gecos );
+gotit:
+ 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 );
@@ -378,12 +381,18 @@
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 );
+ }
+ }
+ }
if (_showUsers == SHOW_ALL) {
UserList noUsers( _noUsers );
QSet<QString> dupes;