[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [lightdm/v0.1] greeter: Fix broken face icons
From:       Aurélien Gâteau <aurelien.gateau () canonical ! com>
Date:       2012-04-23 9:21:23
Message-ID: 20120423092123.ABAE9A60A9 () git ! kde ! org
[Download RAW message or body]

Git commit afa38205e8f9d2175e12dd209c190c27f3c424fa by Aurélien Gâteau.
Committed on 23/04/2012 at 11:17.
Pushed by gateau into branch 'v0.1'.

Fix broken face icons

Since liblightdm-qt-1.2.1, UsersModel returns the face as a QIcon.

M  +11   -3    greeter/faceimageprovider.cpp

http://commits.kde.org/lightdm/afa38205e8f9d2175e12dd209c190c27f3c424fa

diff --git a/greeter/faceimageprovider.cpp b/greeter/faceimageprovider.cpp
index 7ac7994..343b181 100644
--- a/greeter/faceimageprovider.cpp
+++ b/greeter/faceimageprovider.cpp
@@ -23,6 +23,7 @@ along with LightDM-KDE.  If not, see <http://www.gnu.org/licenses/>.
 #include <KDebug>
 #include <KIconLoader>
 
+#include <QIcon>
 #include <QPixmap>
 
 FaceImageProvider::FaceImageProvider(QAbstractItemModel* model)
@@ -46,11 +47,18 @@ QPixmap FaceImageProvider::requestPixmap(const QString& id, QSize* size, const Q
         kWarning() << "Couldn't find user" << id << "in UsersModel";
         return QPixmap();
     }
-    QPixmap pix = userIndex.data(Qt::DecorationRole).value<QPixmap>();
+
+    // Get user face pixmap
+    QPixmap pix;
+    int extent = requestedSize.isValid() ? requestedSize.width() : 0;
+    QIcon icon = userIndex.data(Qt::DecorationRole).value<QIcon>();
+    if (!icon.isNull()) {
+        pix = icon.pixmap(extent);
+    }
     if (pix.isNull()) {
-        int iconSize = requestedSize.isValid() ? requestedSize.width() : 0;
-        pix = DesktopIcon("user-identity", iconSize);
+        pix = DesktopIcon("user-identity", extent);
     }
+
     if (size) {
         *size = pix.size();
     }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic