File kdm-align-userlist-labels.diff of Package kdebase3
--- kdm/kfrontend/kgreeter.cpp 2007/08/14 09:35:13 1.65
+++ kdm/kfrontend/kgreeter.cpp 2007/08/14 12:27:44
@@ -57,6 +57,7 @@
#include <qtooltip.h>
#include <qaccel.h>
#include <qeventloop.h>
+#include <qbitmap.h>
#include <pwd.h>
#include <grp.h>
@@ -279,6 +280,33 @@
if ( p.isNull() )
p = default_pix;
+ const int size = 48;
+ const int wdiff = size - p.size().width();
+ const int hdiff = size - p.size().height();
+ if (wdiff>0 || hdiff>0) {
+ QPixmap pix(p);
+ QBitmap mask;
+ mask.convertFromImage(p.createAlphaMask());
+ pix.resize(size, size);
+ bitBlt(&pix, wdiff/2.0, hdiff/2.0, &pix);
+ if (mask.isNull()) {
+ mask = QBitmap(size, size);
+ mask.fill(Qt::color1);
+ }
+ else {
+ mask.resize(size, size);
+ bitBlt(&mask, wdiff/2.0, hdiff/2.0, &mask);
+ }
+ QPainter pa(&mask);
+ pa.fillRect(0, 0, size, hdiff/2.0, Qt::color0);
+ pa.fillRect(0, 0, wdiff/2.0, size, Qt::color0);
+ pa.fillRect(size-(wdiff/2.0), 0, size, size, Qt::color0);
+ pa.fillRect(0, size-(hdiff/2.0), size, size, Qt::color0);
+ pa.end();
+ pix.setMask(mask);
+ p=pix.convertToImage();
+ }
+
QString realname = KStringHandler::from8Bit( ps->pw_gecos );
realname.truncate( realname.find( ',' ) );
if (realname.isEmpty() || realname == username)